Giới thiệu về khóa học cơ sở dữ liệu
Xin chào và chào mừng bạn đến với khóa học này. Hầu như tất cả mọi người đều đã sử dụng cơ sở dữ liệu và nhiều khả năng thông tin về chúng tôi có thể có mặt trong nhiều cơ sở dữ liệu trên toàn thế giới.
Cơ sở dữ liệu là gì?
Một mô tả rất đơn giản về cơ sở dữ liệu là nó là một hình thức lưu trữ điện tử trong đó dữ liệu được lưu trữ. Tuy nhiên, lời giải thích đó không thể hiện đầy đủ tác động của công nghệ cơ sở dữ liệu trong thế giới thực.
Ví dụ sử dụng cơ sở dữ liệu
Ngân hàng sử dụng cơ sở dữ liệu để lưu trữ dữ liệu khách hàng, tài khoản và giao dịch. Bệnh viện lưu trữ dữ liệu nhân viên, bệnh nhân, phòng thí nghiệm. Cửa hàng trực tuyến giữ thông tin hồ sơ, lịch sử mua sắm và giao dịch kế toán.
Dữ liệu lớn và IoT
Các dịch vụ trực tuyến và nền tảng truyền thông xã hội tạo ra lượng dữ liệu khổng lồ. Với Internet vạn vật (IoT), nhiều thiết bị bổ sung hiện được kết nối, tạo ra luồng dữ liệu liên tục dẫn đến cuộc cách mạng trong công nghệ cơ sở dữ liệu.
Các chức năng chính của cơ sở dữ liệu
Cơ sở dữ liệu thường thực hiện các hành động như: lưu trữ dữ liệu, kết nối dữ liệu, lọc dữ liệu, tìm kiếm dữ liệu, cập nhật, thay đổi và xóa dữ liệu theo yêu cầu.
Nội dung khóa học
Bạn sẽ tìm hiểu về khái niệm dữ liệu và cơ sở dữ liệu, các cấu trúc khác nhau, cách thực hiện thao tác CRUD, cách sắp xếp và lọc dữ liệu, chuẩn hóa cơ sở dữ liệu và cách bình thường hóa.
Thực hành và phần mềm hỗ trợ
Bạn sẽ xây dựng một cơ sở dữ liệu hoạt động đầy đủ, cài đặt và thiết lập phần mềm để học cơ sở dữ liệu cục bộ và từ xa. Khóa học có nhiều video hướng dẫn chi tiết.
Bài tập và thảo luận
Trong khóa học, bạn sẽ gặp các câu đố kiến thức để tự kiểm tra. Bạn cũng sẽ tham gia thảo luận với bạn cùng lớp để chia sẻ kiến thức và kết nối.
Phương pháp học tập
Để thành công, bạn cần cam kết học tập thường xuyên và có kỷ luật. Hãy vạch ra lịch học với ngày và thời gian cụ thể. Đây là khóa học tự theo nhịp độ, nhưng hãy coi như tham dự tại một viện học tập.
Tóm lại
Khóa học này cung cấp cho bạn một phần giới thiệu đầy đủ về cơ sở dữ liệu và là một phần của chương trình dẫn bạn đến sự nghiệp phát triển back-end.
Giải quyết vấn đề con người qua công nghệ
Tôi thực sự thích ý tưởng này rằng cuối cùng tất cả chúng ta đều giải quyết vấn đề của con người thông qua công nghệ. Là một kỹ sư phần mềm, vai trò của tôi không chỉ đơn giản là phát triển các giải pháp công nghệ, mà còn phải mang lại kết quả cho con người.
Giới thiệu bản thân
Tôi là Daniel Bloomfield Ramagem, kỹ sư phần mềm tại Meta. Tôi gia nhập công ty vào năm 2017 và làm việc tại văn phòng Washington DC.
Ví dụ về cơ sở dữ liệu
Tôi nghĩ ngay đến cuốn sách công thức của mẹ tôi, một cuốn sổ tay xoắn ốc với chỉ mục để dễ dàng tìm công thức. Đó chính là một cơ sở dữ liệu. Mẹ tôi đã tạo ra cơ sở dữ liệu của riêng mình.
Dữ liệu trong đời sống và công nghệ
Ví dụ này cho thấy phạm vi ứng dụng của việc lưu trữ dữ liệu có cấu trúc. Từ cuốn sách công thức đến hình ảnh chia sẻ trên Facebook, tất cả đều dựa trên cơ sở dữ liệu và hạ tầng công nghệ.
Tầm quan trọng của dữ liệu
Dữ liệu là trung tâm của mọi ứng dụng. Một lớp dữ liệu hiệu quả giúp phản hồi nhanh chóng, chính xác và ảnh hưởng đến toàn bộ ngăn xếp công nghệ: giao diện người dùng, máy khách, API.
Kỹ năng kỹ thuật và kỹ năng mềm
Tôi mã hóa bằng ngôn ngữ lập trình chuẩn cho web, xây dựng đường ống ETL cho dữ liệu. Tôi cũng sử dụng kỹ năng mềm như giao tiếp và tổ chức hàng ngày.
Vai trò của giao tiếp
Mã là quan trọng, nhưng không đủ. Người kỹ sư xuất sắc còn phải giải thích công việc cho nhóm và người dùng. Sự hoàn hảo có thể là kẻ thù của cái tốt, đặc biệt trong phát triển cơ sở dữ liệu.
Phương pháp phát triển cơ sở dữ liệu
Bắt đầu nhỏ, lặp lại thường xuyên, tập trung vào nhu cầu dữ liệu hiện tại. Tránh tạo lược đồ quá phức tạp khó duy trì. Viết tài liệu đi kèm với mã, cập nhật wiki, chia sẻ trạng thái công việc.
Tầm quan trọng của viết
Mã là 80%, nhưng 20% còn lại là giao tiếp. Viết thường xuyên hơn, dù không hoàn hảo, để kết nối kiến thức kỹ thuật với vấn đề thực tế.
Kết nối thực tế
Hãy liên hệ việc học với những ví dụ đời thường: cuốn sách công thức của cha mẹ, thẻ bóng chày, truyện tranh. Những vấn đề nhỏ như tìm công thức đúng lúc, hay vấn đề lớn hơn như giao tiếp kỹ thuật số giữa con người.
Giáo trình khóa học: Giới thiệu về cơ sở dữ liệu
Trạng thái: Dịch tự động từ Tiếng Anh
Dịch tự động từ Tiếng Anh
Điều kiện tiên quyết
Để tham gia khóa học này, bạn không cần bất kỳ cơ sở dữ liệu hoặc kinh nghiệm mã hóa nào trước đó. Tuy nhiên, bạn phải háo hức để bắt đầu với mã hóa!
Mô-đun 1
Trong mô-đun mở đầu này, bạn sẽ nhận được phần giới thiệu về khóa học và khám phá các vai trò nghề nghiệp có thể mà bạn có thể làm theo với tư cách là một kỹ sư cơ sở dữ liệu. Bạn cũng sẽ xem lại một số lời khuyên về cách tham gia khóa học này thành công và thảo luận về những gì bạn hy vọng sẽ học.
Bạn sẽ tìm hiểu về những điều cơ bản về cơ sở dữ liệu và dữ liệu và cách chúng hoạt động. Sau đó, bạn sẽ nhận được phần giới thiệu về SQL, cú pháp mã hóa được sử dụng để tương tác với cơ sở dữ liệu. Cuối cùng, bạn sẽ khám phá cấu trúc cơ bản của cơ sở dữ liệu và các loại khóa khác nhau.
Kết quả học tập
Giải thích cơ sở dữ liệu là gì và nó được sử dụng để làm gì.
Giải thích cách dữ liệu có liên quan trong cơ sở dữ liệu và cách các bảng sắp xếp dữ liệu.
Phân biệt giữa các loại cơ sở dữ liệu và khóa.
Áp dụng cú pháp SQL để tạo các lệnh SQL.
Mô-đun 2
Trong mô-đun 2, bạn sẽ khám phá các hoạt động CRUD: Tạo, Đọc, Cập nhật và Xóa. Bạn sẽ bắt đầu với việc khám phá các kiểu dữ liệu SQL và tìm hiểu cách phân biệt giữa dữ liệu số, dữ liệu chuỗi và giá trị mặc định.
Bạn sẽ học cách tạo và đọc dữ liệu trong cơ sở dữ liệu, tạo cơ sở dữ liệu và bảng, điền dữ liệu bằng câu lệnh SQL. Cuối cùng, bạn sẽ khám phá các câu lệnh SQL để cập nhật và xóa dữ liệu.
Kết quả học tập
Phân biệt giữa các kiểu dữ liệu SQL.
Tạo và đọc bản ghi và bảng trong cơ sở dữ liệu hiện có.
Cập nhật và xóa các bản ghi trong cơ sở dữ liệu hiện có.
Mô-đun 3
Trong mô-đun thứ ba, bạn sẽ khám phá các toán tử SQL và tìm hiểu cách sắp xếp và lọc dữ liệu. Bạn sẽ học về cú pháp và cách triển khai toán tử số học và so sánh SQL.
Bạn sẽ khám phá cách sắp xếp và lọc dữ liệu bằng các mệnh đề như Order By, Where và Select Distinct. Bạn sẽ xem minh chứng và có cơ hội thực hành.
Kết quả học tập
Giải thích cách các toán tử SQL được sử dụng trong cơ sở dữ liệu.
Sắp xếp và lọc dữ liệu trong cơ sở dữ liệu hiện có.
Mô-đun 4
Trong mô-đun bốn, bạn sẽ tìm hiểu về thiết kế cơ sở dữ liệu. Bài học đầu tiên giới thiệu về lược đồ cơ sở dữ liệu và các loại lược đồ khác nhau.
Bài học tiếp theo tập trung vào thiết kế cơ sở dữ liệu quan hệ, cách thiết lập mối quan hệ giữa các bảng bằng khóa chính và khóa ngoại.
Cuối cùng, bạn sẽ học về chuẩn hóa cơ sở dữ liệu, khái niệm dạng bình thường và các loại hình bình thường khác nhau.
Kết quả học tập
Mô tả cách các bảng được cấu trúc trong cơ sở dữ liệu.
Phân biệt giữa các loại lược đồ cơ sở dữ liệu.
Xác định các loại khóa khác nhau trong cơ sở dữ liệu.
Duy trì tính toàn vẹn dữ liệu và các mối quan hệ thông qua việc sử dụng các khóa.
Xác định mối quan hệ giữa các thực thể trong cơ sở dữ liệu.
Mô-đun 5
Trong mô-đun cuối cùng, bạn sẽ có cơ hội để tóm tắt lại những gì bạn đã học và xác định điểm mạnh của bạn cùng các chủ đề mục tiêu mà bạn muốn xem lại trong khóa học này.
Giới thiệu về dữ liệu và cơ sở dữ liệu
Tất cả chúng ta đều sử dụng dữ liệu và cơ sở dữ liệu trong cuộc sống trực tuyến hàng ngày. Ví dụ: tải ảnh lên mạng xã hội, tải xuống tệp tại nơi làm việc và chơi trò chơi trực tuyến đều là những ví dụ về việc sử dụng cơ sở dữ liệu.
Dữ liệu là gì?
Dữ liệu là sự thật và số liệu về bất cứ điều gì. Ví dụ: dữ liệu về một người có thể bao gồm tên, tuổi, email và ngày sinh. Dữ liệu cũng có thể liên quan đến mua hàng trực tuyến như số đơn đặt hàng, mô tả, số lượng và ngày đặt hàng.
Cơ sở dữ liệu là gì?
Cơ sở dữ liệu là hình thức lưu trữ điện tử trong đó dữ liệu được tổ chức có hệ thống. Nó giúp lưu trữ và thao tác dữ liệu hiệu quả, dễ quản lý và an toàn hơn.
Ví dụ thực tế
Ngân hàng sử dụng cơ sở dữ liệu để lưu trữ dữ liệu khách hàng, tài khoản và giao dịch. Bệnh viện lưu trữ dữ liệu bệnh nhân, nhân viên và phòng thí nghiệm.
Cấu trúc cơ sở dữ liệu
Cơ sở dữ liệu thường được tổ chức như bảng tính hoặc bảng. Dữ liệu được lưu trữ trong các thực thể, mỗi thực thể giống như một bảng với hàng và cột. Các thuộc tính trở thành cột, mỗi hàng là một trường hợp cụ thể.
Ví dụ về thực thể
Cửa hàng trực tuyến có thể lưu dữ liệu khách hàng trong thực thể khách hàng với các thuộc tính như tên, ngày sinh, email. Sản phẩm được lưu trong thực thể sản phẩm với mã sản phẩm, mô tả, giá cả và tình trạng.
Các loại cơ sở dữ liệu
Cơ sở dữ liệu quan hệ: dữ liệu được lưu trong bảng, các thực thể có quan hệ với nhau.
Cơ sở dữ liệu hướng đối tượng: dữ liệu được lưu dưới dạng đối tượng thay vì bảng.
Cơ sở dữ liệu đồ thị: dữ liệu được lưu dưới dạng nút, mối quan hệ là cạnh.
Cơ sở dữ liệu tài liệu: dữ liệu được lưu dưới dạng tài liệu JSON trong các bộ sưu tập.
Lưu trữ cơ sở dữ liệu
Cơ sở dữ liệu có thể được lưu trên máy chuyên dụng trong tổ chức hoặc trên Đám mây. Cơ sở dữ liệu đám mây ngày càng phổ biến vì chi phí thấp và dễ truy cập qua Internet.
Kết luận
Bạn đã hiểu khái niệm cơ sở dữ liệu, có thể xác định ví dụ thực tế và chứng minh cách dữ liệu được tổ chức trong cơ sở dữ liệu. Đây là khởi đầu tuyệt vời để bạn lưu trữ và quản lý dữ liệu ngay lập tức.
Mối quan hệ dữ liệu trong cơ sở dữ liệu
Hãy hình dung bạn đang quản lý cơ sở dữ liệu của một cửa hàng trực tuyến lớn. Cơ sở dữ liệu phải có khả năng truy xuất chi tiết khách hàng từ một bảng và tìm đơn đặt hàng từ bảng khác. Làm thế nào để cơ sở dữ liệu thiết lập mối quan hệ giữa các dữ liệu này?
Tầm quan trọng của dữ liệu liên quan
Dữ liệu trong cơ sở dữ liệu không thể tồn tại riêng biệt. Nó phải có mối quan hệ với dữ liệu khác để trở thành thông tin có ý nghĩa.
Ví dụ cửa hàng trực tuyến
Trong cơ sở dữ liệu cửa hàng trực tuyến, có bảng khách hàng và bảng đặt hàng. Để xác định chi tiết đơn đặt hàng, cơ sở dữ liệu kiểm tra số đơn đặt hàng so với ID khách hàng, thiết lập liên kết giữa dữ liệu trong các bảng.
Bảng khách hàng
Bảng khách hàng có các cột: ID khách hàng, FirstName, LastName, Email. Đây là các trường. Các hàng chứa dữ liệu cho mỗi trường, gọi là bản ghi. Mỗi bản ghi là một phiên bản của thực thể khách hàng.
Ví dụ: Sarah Hogan với ID C1 là một khách hàng, Katrina Langley với ID C4 là một khách hàng khác. Mỗi khách hàng phải có thể nhận dạng duy nhất.
Khóa chính
Để tránh nhầm lẫn khi nhiều khách hàng có cùng tên, sử dụng trường chứa giá trị duy nhất như ID khách hàng. Đây là khóa chính, không thể sao chép ở nơi khác trong bảng.
Bảng đặt hàng
Bảng đặt hàng cũng có các trường và bản ghi. Trường khóa chính là ID lệnh. Ngoài ra có trường ID khách hàng chứa dữ liệu giống bảng khách hàng để xác định ai đặt hàng.
Khóa ngoại
Trường ID khách hàng trong bảng đặt hàng là khóa ngoại. Khóa ngoại kết nối với khóa chính trong bảng khách hàng. Nhờ đó, mối quan hệ được thiết lập và dữ liệu giữa hai bảng có liên quan.
Kết luận
Bạn đã có thể giải thích mối quan hệ giữa dữ liệu trong cơ sở dữ liệu và xác định các trường hợp dữ liệu liên quan. Đây là nền tảng quan trọng trong quản lý cơ sở dữ liệu.
Biểu đồ ví dụ dữ liệu quan hệ
Dữ liệu được thu thập và lưu trữ trong cơ sở dữ liệu từ nhiều nguồn khác nhau vì nhiều lý do khác nhau. Ví dụ: đơn đặt hàng của khách hàng, đăng ký khóa học của sinh viên, tương tác và phản hồi của người dùng để cá nhân hóa nội dung và cải thiện dịch vụ.
Tầm quan trọng của biểu đồ dữ liệu
Điều quan trọng là tổ chức dữ liệu, xử lý và trình bày nó một cách hiệu quả để làm cho nó hữu ích và có ý nghĩa hơn. Biểu đồ giúp minh họa mối quan hệ giữa dữ liệu bằng cách sử dụng văn bản, ký hiệu và yếu tố đồ họa.
Biểu đồ có thể truyền tải nhiều thông tin, thu hút sự chú ý và hỗ trợ ra quyết định. Bạn sẽ tìm hiểu về các biểu đồ cơ bản thường dùng để liên kết và trình bày dữ liệu trực quan.
Biểu đồ thanh
Biểu đồ thanh trình bày dữ liệu phân loại bằng các thanh hình chữ nhật, chiều cao tỷ lệ với giá trị. Ví dụ: doanh thu của một hiệu sách từ năm 2019 đến 2022 có thể được minh họa bằng biểu đồ thanh.
Trục x hiển thị các năm, trục y hiển thị giá trị bán hàng. Thanh cao nhất cho thấy năm thành công nhất, thanh thấp nhất cho thấy năm tồi tệ nhất.
Biểu đồ bong bóng
Biểu đồ bong bóng cho thấy các giá trị khác nhau qua kích thước bong bóng. Bong bóng lớn hơn đại diện cho giá trị lớn hơn.
Ví dụ: dân số các quốc gia năm 2015. Trung Quốc và Ấn Độ có bong bóng lớn nhất, Mỹ và Indonesia bong bóng trung bình, Nga và Ai Cập bong bóng nhỏ hơn.
Biểu đồ bong bóng giúp dễ ghi nhớ thông tin vì hình ảnh trực quan thường hiệu quả hơn văn bản.
Biểu đồ đường
Biểu đồ đường trình bày dữ liệu bằng các điểm kết nối với đường thẳng. Nó phổ biến trong phân tích dữ liệu để mô tả xu hướng.
Ví dụ: giá vàng trong tháng qua, đường biểu diễn cho thấy sự thay đổi theo thời gian, giúp phân tích xu hướng thị trường.
Biểu đồ hình tròn
Biểu đồ hình tròn hiển thị cách các dữ liệu khác nhau tạo thành tổng thể 100%. Mỗi lát cắt đại diện cho một phần dữ liệu.
Ví dụ: tỷ lệ học sinh thích các môn thể thao. Bóng đá chiếm 50%, Tennis và Bơi lội mỗi môn chiếm 25%.
Các loại biểu đồ khác
Ngoài các biểu đồ trên, còn có biểu đồ khu vực, biểu đồ trục kép, biểu đồ Gantt, bản đồ nhiệt và biểu đồ phân tán.
Lựa chọn biểu đồ phù hợp
Mỗi biểu đồ phục vụ mục đích khác nhau. Biểu đồ đường tốt để xác định xu hướng, biểu đồ hình tròn đơn giản để hiển thị tỷ lệ phần trăm. Tuy nhiên, biểu đồ hình tròn khó sử dụng khi có nhiều lát nhỏ.
Lựa chọn biểu đồ phụ thuộc vào đối tượng, ý tưởng và mục tiêu. Sau khi đánh giá dữ liệu, bạn có thể thử nghiệm với nhiều biểu đồ để tìm tùy chọn tốt nhất.
Kết luận
Bằng cách xem xét đối tượng, dữ liệu và mục tiêu, bạn có thể xác định biểu đồ phù hợp nhất để truyền đạt thông tin hiệu quả.
Dữ liệu lớn và cơ sở dữ liệu đám mây
Bạn có thể đã nghe nói về các thuật ngữ như dữ liệu lớn và cơ sở dữ liệu đám mây. Trong nội dung này, bạn sẽ khám phá thêm về các thuật ngữ này và có thể xác định các loại cơ sở dữ liệu khác nhau cũng như cách chúng phát triển để đáp ứng xu hướng mới.
Sự phát triển của cơ sở dữ liệu
Cơ sở dữ liệu đã tồn tại lâu dài nhưng thay đổi mạnh mẽ trong thập kỷ gần đây nhờ internet. Chúng phải lưu trữ lượng dữ liệu phi cấu trúc ngày càng tăng, trong khi truyền thống chỉ lưu trữ dữ liệu có cấu trúc.
Các loại cơ sở dữ liệu
Cơ sở dữ liệu quan hệ có hạn chế khi lưu trữ dữ liệu phi cấu trúc. Xu hướng mới là sử dụng cơ sở dữ liệu NoSQL, cho phép lưu trữ dữ liệu ở nhiều định dạng khác nhau với cấu trúc linh hoạt. Điều này giúp mở rộng quy mô dễ dàng mà không cần mô hình dữ liệu phức tạp.
NoSQL bao gồm cơ sở dữ liệu tài liệu, cơ sở dữ liệu giá trị chính và cơ sở dữ liệu đồ thị. Chúng thường được dùng trong truyền thông xã hội, IoT, trí tuệ nhân tạo và các ứng dụng tạo ra lượng lớn dữ liệu phi cấu trúc.
Dữ liệu lớn (Big Data)
Dữ liệu lớn là dữ liệu phức tạp có thể tăng khối lượng theo cấp số nhân theo thời gian. Nó đến từ các nền tảng truyền thông xã hội, trang web mua sắm trực tuyến và IoT, nơi hàng tỷ người dùng tạo ra dữ liệu mỗi giây.
Dữ liệu lớn bao gồm dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc. Nó giúp giải quyết các vấn đề kinh doanh phức tạp mà dữ liệu truyền thống không thể xử lý, cung cấp những hiểu biết độc đáo để cải thiện quyết định.
Ví dụ ứng dụng dữ liệu lớn
Trong sản xuất: dự đoán lỗi thiết bị, giám sát dây chuyền, phản hồi khách hàng và dự đoán nhu cầu tương lai.
Trong bán lẻ: dự đoán nhu cầu khách hàng, cải thiện trải nghiệm, phân tích hành vi và mô hình chi tiêu.
Trong viễn thông: phân tích sử dụng mạng, lập kế hoạch đầu tư hạ tầng, thiết kế dịch vụ mới và dự đoán sự hài lòng khách hàng.
Cơ sở dữ liệu đám mây
Các tổ chức chuyển sang cơ sở dữ liệu đám mây để giảm chi phí bảo trì và lưu trữ máy chủ vật lý. Ví dụ: Dropbox và iCloud cho phép lưu trữ tài liệu và dữ liệu trên đám mây với chi phí thấp hơn.
Kinh doanh thông minh (BI)
Truyền thống, cơ sở dữ liệu chỉ lưu trữ dữ liệu. Nhưng với BI, các tổ chức phân tích dữ liệu để trích xuất thông tin giá trị, hỗ trợ quyết định kinh doanh sáng suốt.
Kết luận
Các xu hướng mới như dữ liệu lớn, cơ sở dữ liệu đám mây và kinh doanh thông minh đang thay đổi cách chúng ta tiếp cận dữ liệu. Đây là những xu hướng hàng đầu mà bạn nên biết để hiểu rõ sự tiến bộ của công nghệ cơ sở dữ liệu.
Tiến hóa cơ sở dữ liệu
Trạng thái: Dịch tự động từ Tiếng Anh
Lưu ý
Đây là một bài đọc tùy chọn. Đừng lo lắng nếu bạn không hiểu tất cả tài liệu này. Nhiều khái niệm trong số này sẽ được đề cập ở giai đoạn sau trong khóa học.
Bạn đã học được cơ sở dữ liệu là gì và dữ liệu liên quan như thế nào trong cơ sở dữ liệu. Bạn cũng đã tìm hiểu về các dự án cơ sở dữ liệu phổ biến và các loại cơ sở dữ liệu thay thế. Trong bài đọc này, bạn sẽ tìm hiểu thêm về lịch sử của công nghệ cơ sở dữ liệu và cách nó phát triển.
Lịch sử
Lịch sử của cơ sở dữ liệu bắt đầu từ những năm 1960 với việc tin học hóa cơ sở dữ liệu. Máy tính nổi lên như một lựa chọn hiệu quả hơn về chi phí cho các tổ chức. Việc chuyển lưu trữ dữ liệu và cơ sở dữ liệu sang máy tính cũng trở nên dễ dàng hơn.
Thứ tự thời gian của sự phát triển của cơ sở dữ liệu như sau:
(1970-1990) - Tệp phẳng, phân cấp và mạng
(Những năm 1980 đến nay) - Quan hệ
(Những năm 1990- nay) - Hướng đối tượng, quan hệ đối tượng, hỗ trợ web
Tập tin phẳng
Cơ sở dữ liệu tệp phẳng đã được sử dụng trong những năm 1970 đến 1990. Đây là một loại hệ thống cơ sở dữ liệu lưu trữ dữ liệu trong một tệp hoặc bảng duy nhất...
Hệ thống cơ sở dữ liệu phân cấp
Các hệ thống cơ sở dữ liệu phân cấp được sử dụng trong cùng một thời đại lưu trữ dữ liệu theo cách sắp xếp thứ bậc...
Cơ sở dữ liệu mạng
Cơ sở dữ liệu mạng được giới thiệu bởi Charles Bachmann. Không giống như mô hình cơ sở dữ liệu phân cấp, cơ sở dữ liệu mạng cho phép nhiều mối quan hệ cha mẹ và con...
Hệ thống cơ sở dữ liệu quan hệ
Hệ thống cơ sở dữ liệu quan hệ được giới thiệu vào những năm 1980 vẫn là hệ thống cơ sở dữ liệu được sử dụng nhiều nhất...
Cơ sở dữ liệu hướng đối tượng
Trong những năm 1990, cơ sở dữ liệu hướng đối tượng đã được giới thiệu. Đây là khi mô hình lập trình hướng đối tượng (OO) trở nên phổ biến...
Cơ sở dữ liệu NoSQL
Cơ sở dữ liệu quan hệ được sử dụng rộng rãi ngay cả hiện tại chỉ cho phép lưu trữ dữ liệu có cấu trúc. Sau đó, ngày càng cần phải làm việc nhiều hơn với dữ liệu phi cấu trúc...
Đây là một số ưu điểm của cơ sở dữ liệu NoSQL:
Khả năng mở rộng cao hơn
Phân phối
Chi phí thấp hơn
Một lược đồ linh hoạt
Có thể xử lý dữ liệu phi cấu trúc và bán cấu trúc
Không có mối quan hệ phức tạp
Theo thời gian, đã có nhiều loại cơ sở dữ liệu NoSQL khác nhau được giới thiệu:
Cơ sở dữ liệu tài liệu...
Cơ sở dữ liệu giá trị khóa...
Cơ sở dữ liệu cột rộng...
Cơ sở dữ liệu đồ thị...
Lịch sử phát triển cơ sở dữ liệu
LƯU Ý: Đây là một bài đọc tùy chọn. Đừng lo lắng nếu bạn không hiểu tất cả tài liệu này. Nhiều khái niệm trong số này sẽ được đề cập ở giai đoạn sau trong khóa học.
Bạn đã học được cơ sở dữ liệu là gì và dữ liệu liên quan như thế nào trong cơ sở dữ liệu. Bạn cũng đã tìm hiểu về các dự án cơ sở dữ liệu phổ biến và các loại cơ sở dữ liệu thay thế. Trong bài đọc này, bạn sẽ tìm hiểu thêm về lịch sử của công nghệ cơ sở dữ liệu và cách nó phát triển.
Lịch sử
Lịch sử của cơ sở dữ liệu bắt đầu từ những năm 1960 với việc tin học hóa cơ sở dữ liệu. Máy tính nổi lên như một lựa chọn hiệu quả hơn về chi phí cho các tổ chức. Việc chuyển lưu trữ dữ liệu và cơ sở dữ liệu sang máy tính cũng trở nên dễ dàng hơn.
Thứ tự thời gian của sự phát triển của cơ sở dữ liệu như sau:
(1970-1990) - Tệp phẳng, phân cấp và mạng
(Những năm 1980 đến nay) - Quan hệ
(Những năm 1990- nay) - Hướng đối tượng, quan hệ đối tượng, hỗ trợ web
Tập tin phẳng
Cơ sở dữ liệu tệp phẳng đã được sử dụng trong những năm 1970 đến 1990. Đây là một loại hệ thống cơ sở dữ liệu lưu trữ dữ liệu trong một tệp hoặc bảng duy nhất. Về cơ bản, chúng là các tệp văn bản, trong đó mỗi dòng chứa một bản ghi và các trường có độ dài cố định hoặc được phân tách bằng dấu phẩy, khoảng trắng và tab. Một tập tin như vậy không thể chứa nhiều bảng.
Dưới đây là một ví dụ về cơ sở dữ liệu tệp phẳng trông như thế nào. Tệp văn bản này lưu trữ các dòng dữ liệu, trong đó mỗi dòng đại diện cho một bản ghi. Các trường OrderId, CustomerId và OrderDate được phân tách bằng dấu phẩy.
Ví dụ về bản ghi trong cơ sở dữ liệu tệp phẳng
Hệ thống cơ sở dữ liệu phân cấp
Các hệ thống cơ sở dữ liệu phân cấp được sử dụng trong cùng một thời đại lưu trữ dữ liệu theo cách sắp xếp thứ bậc.
Hãy nghĩ về nó theo cách này: cha mẹ có thể có nhiều con, nhưng một đứa trẻ chỉ có thể có một cha mẹ. Nói cách khác, cơ sở dữ liệu đại diện cho mối quan hệ một với nhiều: tất cả các thuộc tính của một bản ghi cụ thể được liệt kê dưới một loại thực thể.
Dưới đây là một ví dụ về cách dữ liệu được lưu trữ trong cơ sở dữ liệu phân cấp. Trong trường hợp này, đó là dữ liệu về sinh viên đại học đang tham gia các khóa học khác nhau. Một khóa học chỉ có thể được chỉ định cho một sinh viên duy nhất, nhưng một sinh viên có thể tham gia bao nhiêu khóa học tùy thích. Do đó, có một mối quan hệ một với nhiều.
Có ba sinh viên: John, Anil và Rohan. Và có bốn khóa học: C#, Ngọc trai, Python và Java.
Sinh viên và Khóa học là các loại thực thể. John sử dụng C# và Anil sử dụng cả Python và Java. Rohan lấy Perl.
Ví dụ về hệ thống cơ sở dữ liệu phân cấp
Cơ sở dữ liệu mạng
Cơ sở dữ liệu mạng được giới thiệu bởi Charles Bachmann. Không giống như mô hình cơ sở dữ liệu phân cấp, cơ sở dữ liệu mạng cho phép nhiều mối quan hệ cha mẹ và con. Nói cách khác, nhiều đến nhiều mối quan hệ.
Trong thuật ngữ cơ sở dữ liệu mạng, một bản ghi con được gọi là thành viên. Một thành viên hoặc trẻ em có thể được liên lạc thông qua nhiều phụ huynh, được gọi là chủ sở hữu.
Cơ sở dữ liệu mạng có cấu trúc giống như đồ thị và nó cho phép bạn thể hiện các mối quan hệ phức tạp hơn giữa các dữ liệu.
Dưới đây là một ví dụ về cơ sở dữ liệu mạng. Một giáo viên có thể dạy nhiều khóa học và một khóa học có thể có nhiều giáo viên dạy nó.
Ví dụ cơ sở dữ liệu mạng
Trong thời đại này, một ngôn ngữ được gọi là ngôn ngữ truy vấn SEQUEL đã được sử dụng để làm việc với cơ sở dữ liệu. Sau đó, với cơ sở dữ liệu quan hệ, điều này đã phát triển thành SQL (Ngôn ngữ truy vấn có cấu trúc) được tạo thành một ngôn ngữ truy vấn tiêu chuẩn để làm việc với cơ sở dữ liệu bởi Viện Tiêu chuẩn Quốc gia Hoa Kỳ sau khi các hệ thống cơ sở dữ liệu quan hệ được giới thiệu.
Hệ thống cơ sở dữ liệu quan hệ
Hệ thống cơ sở dữ liệu quan hệ được giới thiệu vào những năm 1980 vẫn là hệ thống cơ sở dữ liệu được sử dụng nhiều nhất. Nó được phát minh bởi E. F. Codd và nó là sự kế thừa của hệ thống cơ sở dữ liệu phân cấp và mạng. Nó được xem như một sự thay đổi mô hình lớn trong công nghệ cơ sở dữ liệu.
Trong một hệ thống cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ trong các bảng. Các cột của bảng chứa các thuộc tính của dữ liệu. Mỗi bản ghi thường có một giá trị cho mỗi thuộc tính, giúp dễ dàng thiết lập mối quan hệ giữa các điểm dữ liệu.
Trong cơ sở dữ liệu quan hệ, mỗi hàng trong bảng là một bản ghi với một thuộc tính ID duy nhất được gọi là khóa chính. Cơ sở dữ liệu quan hệ lưu trữ và cung cấp quyền truy cập vào dữ liệu có liên quan với nhau bằng cách sử dụng một thuộc tính được gọi là khóa ngoại.
Dưới đây là một ví dụ về một cơ sở dữ liệu quan hệ sẽ trông như thế nào. Ở đây, có các bảng với thuộc tính/cột lưu trữ hàng/bản ghi dữ liệu trong đó. Mối quan hệ giữa dữ liệu trong bảng được thiết lập bằng cách sử dụng các cột khóa được gọi là khóa ngoại, bản thân chúng là (các) khóa chính của một bảng nhất định.
Ví dụ, khóa chính của bảng PROFESSOR là PROF_ID và trong bảng CLASS, nó ở đó dưới dạng khóa ngoại. Nó tạo ra mối quan hệ giữa bảng PROFESSOR và bảng CLASS. Một ví dụ khác, COURSE_ID là khóa chính của bảng COURSE và nó có trong bảng CLASS dưới dạng khóa ngoại. Nó thiết lập mối quan hệ giữa bảng COURSE và bảng CLASS.
Cơ sở dữ liệu hướng đối tượng
Trong những năm 1990, cơ sở dữ liệu hướng đối tượng đã được giới thiệu. Đây là khi mô hình lập trình hướng đối tượng (OO) trở nên phổ biến và cần phải biểu diễn dữ liệu trong một hệ thống dưới dạng các đối tượng.
Không giống như cơ sở dữ liệu quan hệ, cơ sở dữ liệu hướng đối tượng hoạt động trong khuôn khổ các ngôn ngữ lập trình thực như Java và C++ chẳng hạn.
Dưới đây là cơ sở dữ liệu hướng đối tượng trông như thế nào. Thay vì bảng, có các thực thể hoặc lớp như Tác giả, Sách và Khách hàng với các thuộc tính và hành vi của chúng.
Có thể biểu diễn dữ liệu theo các khái niệm OO như thừa kế và mối quan hệ cha mẹ-con giữa dữ liệu. Ví dụ: Tác giả và Khách hàng đều là hậu duệ của Person. Do đó, một người là một thực thể chung chung có thể đại diện cho cả Tác giả và Khách hàng.
Ví dụ cơ sở dữ liệu hướng đối tượng
Cơ sở dữ liệu NoSQL
Cơ sở dữ liệu quan hệ được sử dụng rộng rãi ngay cả hiện tại chỉ cho phép lưu trữ dữ liệu có cấu trúc. Sau đó, ngày càng cần phải làm việc nhiều hơn với dữ liệu phi cấu trúc. Đây là khi cơ sở dữ liệu NoSQL xuất hiện như một phản ứng với Internet và nhu cầu tốc độ nhanh hơn và xử lý dữ liệu phi cấu trúc.
Cơ sở dữ liệu NoSQL được ưa thích hơn cơ sở dữ liệu quan hệ vì tốc độ và tính linh hoạt của chúng trong việc lưu trữ dữ liệu. Nó không lưu trữ dữ liệu trong các mối quan hệ hoặc bảng thuộc về một cấu trúc nghiêm ngặt. Dữ liệu có thể được lưu trữ theo cách đặc biệt và chúng cho phép lưu trữ và xử lý khối lượng lớn các loại dữ liệu khác nhau.
Cơ sở dữ liệu NoSQL có khả năng xử lý dữ liệu lớn phi cấu trúc được tạo ra bởi phương tiện truyền thông xã hội, IoT và các dữ liệu khác. Do đó, các nền tảng xã hội như Twitter, LinkedIn, Facebook và Google chẳng hạn sử dụng cơ sở dữ liệu NoSQL.
Đây là một số ưu điểm của cơ sở dữ liệu NoSQL:
- Khả năng mở rộng cao hơn
- Phân phối
- Chi phí thấp hơn
- Một lược đồ linh hoạt
- Có thể xử lý dữ liệu phi cấu trúc và bán cấu trúc
- Không có mối quan hệ phức tạp
Theo thời gian, đã có nhiều loại cơ sở dữ liệu NoSQL khác nhau được giới thiệu:
Cơ sở dữ liệu tài liệu lưu trữ dữ liệu trong các tài liệu tương tự như các đối tượng JSON (JavaScript Object Notation). Mỗi tài liệu chứa các cặp trường và giá trị. Các giá trị thường có thể là một loạt các loại bao gồm những thứ như chuỗi, số, boolean, mảng hoặc đối tượng.
Cơ sở dữ liệu giá trị khóa là một loại cơ sở dữ liệu đơn giản hơn trong đó mỗi mục chứa các khóa và giá trị.
Cơ sở dữ liệu cột rộng lưu trữ dữ liệu trong bảng, hàng và cột động.
Cơ sở dữ liệu đồ thị lưu trữ dữ liệu trong các nút và cạnh. Các nút thường lưu trữ thông tin về người, địa điểm và sự vật, trong khi các cạnh lưu trữ thông tin về mối quan hệ giữa các nút.
Tài nguyên bổ sung
Các tài nguyên sau đây là một số tài liệu đọc bổ sung giới thiệu cho bạn khái niệm cơ sở dữ liệu, các loại cơ sở dữ liệu khác nhau, về cơ sở dữ liệu quan hệ cụ thể và cả về lịch sử của cơ sở dữ liệu. Những điều này sẽ bổ sung thêm kiến thức mà bạn có về các lĩnh vực này trong suốt bài học này.
OracleJava Point
IBM
Điểm hướng dẫn
Mô hình dữ liệu đồ hoạ
Giới thiệu về SQL và Tương tác với Cơ sở dữ liệu
Ở giai đoạn này trong khóa học, bạn có thể đã quen thuộc với những điều cơ bản về cơ sở dữ liệu và cách chúng lưu trữ và quản lý dữ liệu. Nhưng điều quan trọng nữa là bạn phải biết cách tương tác với cơ sở dữ liệu để làm việc với dữ liệu.
Là một kỹ sư dữ liệu, bạn có thể tương tác với cơ sở dữ liệu bằng Ngôn ngữ truy vấn có cấu trúc hoặc như nó thường được biết đến, SQL, cũng được phát âm là "sequel". Trong vài phút tiếp theo, bạn sẽ học cách giải thích SQL là gì và phác thảo vai trò của SQL trong cơ sở dữ liệu.
Các loại tương tác với cơ sở dữ liệu
Những loại tương tác nào mà các kỹ sư cơ sở dữ liệu cần thiết lập với cơ sở dữ liệu? Một số thao tác bạn có thể thực hiện với dữ liệu bao gồm:
- Tạo (Create) dữ liệu
- Đọc (Read) dữ liệu
- Cập nhật (Update) dữ liệu
- Xóa (Delete) dữ liệu
Những hoạt động này còn được gọi là hoạt động CRUD.
Bạn có thể đã quen thuộc với một số hoạt động này. Nếu không, đừng lo lắng, chúng sẽ được đề cập sâu hơn ở các giai đoạn sau của khóa học này.
SQL là gì?
Hãy cùng tìm hiểu thêm về SQL.
SQL là ngôn ngữ tiêu chuẩn có thể được sử dụng với tất cả các cơ sở dữ liệu. Nó đặc biệt hữu ích khi làm việc với cơ sở dữ liệu quan hệ, yêu cầu một ngôn ngữ có thể tương tác với dữ liệu có cấu trúc.
Một số ví dụ về cơ sở dữ liệu quan hệ mà SQL có thể tương tác với bao gồm:
- MySQL
- PostgreSQL
- Oracle
- Microsoft SQL Server
Cơ sở dữ liệu hiểu và thực thi SQL như thế nào?
Câu hỏi tiếp theo mà điều này đặt ra là làm thế nào để cơ sở dữ liệu giải thích hoặc đọc và thực thi các lệnh được đưa ra bằng SQL.
Cơ sở dữ liệu giải thích và hiểu các hướng dẫn SQL với việc sử dụng Hệ thống quản lý cơ sở dữ liệu (DBMS - Database Management System).
Là một nhà phát triển web, bạn sẽ thực hiện tất cả các hướng dẫn SQL trên cơ sở dữ liệu bằng cách sử dụng DBMS. DBMS chịu trách nhiệm chuyển đổi các lệnh SQL thành một biểu mẫu được cơ sở dữ liệu cơ bản hiểu.
Tóm tắt
Đây chỉ là một phần giới thiệu rất nhanh về SQL. Ở giai đoạn đầu này, bạn sẽ có thể:
- Giải thích SQL là gì
- Giải thích vai trò của SQL trong cơ sở dữ liệu
Trong các video sắp tới, bạn sẽ tìm hiểu thêm về SQL và phát triển sự hiểu biết sâu sắc hơn về ngôn ngữ này.
Các hoạt động SQL và các tập con ngôn ngữ SQL
Hãy tưởng tượng rằng bạn vừa được thuê để tạo một cơ sở dữ liệu cho trường đại học. Đầu tiên, bạn cần tạo bảng để lưu trữ dữ liệu trong tất cả các khía cạnh của trường đại học. Sau đó, bạn cần chèn dữ liệu vào các bảng này và sau đó sửa đổi dữ liệu này bất cứ khi nào có gì đó thay đổi. Đó là rất nhiều công việc.
Nhưng tất cả đều có thể thực hiện với việc sử dụng các hoạt động SQL và CRUD. Không quen thuộc với các hoạt động này? Không có vấn đề gì. Trong vài phút tiếp theo, bạn sẽ học cách giải thích các tác vụ mà cú pháp SQL được sử dụng khi xây dựng cơ sở dữ liệu và thể hiện sự hiểu biết về các tập con SQL và ngôn ngữ phụ.
Hoạt động CRUD trong cơ sở dữ liệu
Vì vậy, hãy trở lại kịch bản cơ sở dữ liệu đại học của chúng ta. Làm thế nào bạn có thể thực hiện tất cả những thay đổi này trong cơ sở dữ liệu? Với sự giúp đỡ của các hoạt động CRUD.
Thực hiện các hoạt động CRUD là nhiệm vụ phổ biến nhất khi làm việc với cơ sở dữ liệu. CRUD là viết tắt của:
- Create – Tạo, thêm hoặc chèn dữ liệu
- Read – Đọc dữ liệu
- Update – Cập nhật dữ liệu hiện có
- Delete – Xóa dữ liệu
Có rất nhiều thứ khác mà SQL có thể làm. Tùy thuộc vào mục đích sử dụng, SQL được chia thành nhiều tập con (ngôn ngữ phụ). Các tập con chính bao gồm:
- DDL – Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language)
- DML – Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language)
- DQL – Ngôn ngữ Truy vấn Dữ liệu (Data Query Language)
- DCL – Ngôn ngữ Kiểm soát Dữ liệu (Data Control Language)
DDL – Ngôn ngữ Định nghĩa Dữ liệu
DDL giúp bạn định nghĩa dữ liệu trong cơ sở dữ liệu. Trước khi có thể lưu trữ dữ liệu, bạn cần tạo cơ sở dữ liệu và các đối tượng liên quan như bảng.
Các lệnh chính của DDL bao gồm:
- CREATE – Tạo cơ sở dữ liệu hoặc bảng
- ALTER – Sửa đổi cấu trúc đối tượng (ví dụ: thêm cột mới vào bảng)
- DROP – Xóa đối tượng (ví dụ: xóa bảng khỏi cơ sở dữ liệu)
DML – Ngôn ngữ Thao tác Dữ liệu
DML được sử dụng để thao tác dữ liệu trong cơ sở dữ liệu, như chèn, cập nhật hoặc xóa dữ liệu. Hầu hết các hoạt động CRUD thuộc về DML.
Các lệnh chính của DML:
- INSERT – Thêm dữ liệu mới vào bảng (chỉ định các trường và giá trị)
- UPDATE – Chỉnh sửa dữ liệu đã có trong bảng
- DELETE – Xóa dữ liệu khỏi bảng
DQL – Ngôn ngữ Truy vấn Dữ liệu
Để đọc hoặc lấy dữ liệu đã lưu trữ trong cơ sở dữ liệu, bạn sử dụng DQL.
Lệnh chính của DQL:
- SELECT – Truy xuất dữ liệu từ một hoặc nhiều bảng, cho phép chỉ định các cột cần lấy và điều kiện lọc
DCL – Ngôn ngữ Kiểm soát Dữ liệu
DCL được sử dụng để kiểm soát quyền truy cập vào cơ sở dữ liệu và dữ liệu.
Các lệnh chính của DCL:
- GRANT – Cấp quyền truy cập cho người dùng
- REVOKE – Thu hồi quyền truy cập đã cấp trước đó
Tóm tắt
Bây giờ bạn đã làm quen với cách SQL hoạt động như giao diện giữa cơ sở dữ liệu và người dùng, cũng như các hoạt động SQL chính và các ngôn ngữ phụ (DDL, DML, DQL, DCL). Công việc tuyệt vời!
Lợi thế của SQL trong việc tương tác với cơ sở dữ liệu
Bây giờ bạn rất có thể đã quen thuộc với những điều cơ bản của cơ sở dữ liệu và thậm chí bạn có thể đã bắt gặp một số cú pháp SQL đơn giản. Tại sao các nhà phát triển sử dụng SQL để tương tác với cơ sở dữ liệu?
SQL là một lựa chọn ngôn ngữ phổ biến cho cơ sở dữ liệu vì nhiều lợi thế mà nó mang lại. Trong vài phút tiếp theo, bạn sẽ xác định những lợi thế của SQL và chứng minh những lợi thế này hỗ trợ như thế nào với các tác vụ cơ sở dữ liệu.
SQL là giao diện hoặc cầu nối giữa cơ sở dữ liệu quan hệ và người dùng của nó, đồng thời cung cấp cho các nhà phát triển web một loạt các lợi thế. Chúng ta hãy xem xét một vài trong số đó.
Ưu điểm lớn nhất: Dễ học và thân thiện với người dùng
Ưu điểm lớn nhất của SQL là nó đòi hỏi rất ít kỹ năng mã hóa để sử dụng, chỉ là một tập hợp các từ khóa.
Không có nhiều dòng mã cần thiết để thực hiện các thao tác CRUD cơ bản (tạo, đọc, cập nhật và xóa dữ liệu). Đó là một ngôn ngữ rất thân thiện với nhà phát triển hoặc thân thiện với người dùng.
Tính tương tác của SQL làm cho nó trở nên thân thiện hơn vì nó cho phép các nhà phát triển viết các truy vấn phức tạp trong một khoảng thời gian ngắn.
Nếu bạn cần làm việc với cơ sở dữ liệu quan hệ cho dự án tiếp theo của mình, bạn chỉ cần biết những từ khóa nào để sử dụng và khi nào.
Ngôn ngữ tiêu chuẩn và có nhiều hỗ trợ
SQL cũng là một ngôn ngữ tiêu chuẩn có thể được sử dụng với tất cả các cơ sở dữ liệu quan hệ như MySQL, PostgreSQL, Oracle, SQL Server, v.v.
Điều này cũng có nghĩa là có rất nhiều hỗ trợ, tài liệu và thông tin có sẵn từ cộng đồng.
Ngôn ngữ di động (Portable)
SQL có thể chạy trên bất kỳ máy tính nào sau khi bạn đã cài đặt phần mềm cơ sở dữ liệu.
Nó là một ngôn ngữ di động: Khi bạn viết mã SQL trên máy tính để bàn và sau đó di chuyển nó đến môi trường máy chủ sản xuất, nó sẽ chạy giống nhau ở cả hai vị trí, trên bất kỳ phần cứng, hệ điều hành hoặc nền tảng nào.
Ngôn ngữ toàn diện (Comprehensive)
SQL là một ngôn ngữ toàn diện bao gồm tất cả các lĩnh vực quản trị và quản lý cơ sở dữ liệu.
Ví dụ, nó cho phép bạn:
- Tạo cơ sở dữ liệu
- Chèn, cập nhật và xóa dữ liệu
- Truy xuất và chia sẻ dữ liệu giữa nhiều người dùng
- Quản lý bảo mật cơ sở dữ liệu
Điều này được thực hiện thông qua các tập con của SQL:
- DDL – Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language)
- DML – Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language)
- DQL – Ngôn ngữ Truy vấn Dữ liệu (Data Query Language)
- DCL – Ngôn ngữ Kiểm soát Dữ liệu (Data Control Language)
Hiệu quả xử lý dữ liệu lớn
Ưu điểm cuối cùng của SQL là nó cho phép người dùng cơ sở dữ liệu xử lý lượng lớn dữ liệu một cách nhanh chóng và hiệu quả.
Tóm tắt
Bây giờ bạn biết rằng SQL là một ngôn ngữ đơn giản, tiêu chuẩn, di động, toàn diện và hiệu quả, có thể được sử dụng để giao tiếp và làm việc với cơ sở dữ liệu quan hệ.
Bạn đang trên con đường thành thạo SQL. Làm tốt lắm!
Cú pháp cơ bản của SQL và các tập con DDL, DML, DQL
Như bạn có thể đã biết, bạn có thể tương tác với cơ sở dữ liệu bằng SQL. Nhưng cũng giống như với các ngôn ngữ lập trình khác, bạn cần có kinh nghiệm với cú pháp SQL và các tập con của nó trước khi chúng ta có thể sử dụng nó hiệu quả.
Trong vài phút tiếp theo, bạn sẽ học cách:
- Tạo cơ sở dữ liệu bằng ngôn ngữ định nghĩa dữ liệu (DDL – Data Definition Language)
- Điền và sửa đổi dữ liệu bằng ngôn ngữ thao tác dữ liệu (DML – Data Manipulation Language)
- Đọc và truy vấn dữ liệu bằng ngôn ngữ truy vấn dữ liệu (DQL – Data Query Language)
Để minh họa cú pháp SQL và các tập con, tôi sẽ sử dụng các lệnh SQL để phát triển một cơ sở dữ liệu mẫu cho trường đại học. Tuy nhiên, phần trình bày sau đây chỉ hiển thị ngắn gọn từng bước trong quy trình. Mục tiêu là giúp bạn làm quen với SQL ngay bây giờ. Bạn sẽ khám phá chi tiết hơn về từng ngôn ngữ phụ sau trong chương trình.
Tạo cơ sở dữ liệu (DDL)
Nhiệm vụ đầu tiên là tạo cơ sở dữ liệu. Cú pháp cơ bản của DDL để tạo cơ sở dữ liệu là:
CREATE DATABASE tên_cơ_sở_dữ_liệu;
Ví dụ: Tạo cơ sở dữ liệu đại học
CREATE DATABASE university;
Tạo bảng (DDL)
Sau khi tạo cơ sở dữ liệu, bước tiếp theo là tạo các bảng. Cú pháp cơ bản:
CREATE TABLE tên_bảng (các cột và kiểu dữ liệu);
Ví dụ: Tạo bảng sinh viên
CREATE TABLE student (...);
Thêm dữ liệu vào bảng (DML – INSERT)
Để thêm dữ liệu vào bảng, sử dụng tập con DML với lệnh INSERT.
Cú pháp cơ bản:
INSERT INTO tên_bảng (cột1, cột2, ...) VALUES (giá_trị1, giá_trị2, ...);
Ví dụ: Thêm thông tin sinh viên
INSERT INTO student (ID, FirstName, LastName, DateOfBirth) VALUES (...);
Cập nhật dữ liệu (DML – UPDATE)
Nếu cần sửa đổi dữ liệu (ví dụ: sửa sai ngày sinh), sử dụng lệnh UPDATE.
Cú pháp cơ bản:
UPDATE tên_bảng SET cột = giá_trị_mới WHERE điều_kiện;
Ví dụ: Cập nhật ngày sinh cho sinh viên có ID = 2
UPDATE student SET DateOfBirth = 'ngày_mới' WHERE ID = 2;
Xóa dữ liệu (DML – DELETE)
Để xóa dữ liệu khỏi bảng, sử dụng lệnh DELETE.
Cú pháp cơ bản:
DELETE FROM tên_bảng WHERE điều_kiện;
Ví dụ: Xóa sinh viên có ID = 3
DELETE FROM student WHERE ID = 3;
Truy vấn / Đọc dữ liệu (DQL – SELECT)
Để đọc hoặc lấy dữ liệu từ bảng, sử dụng tập con DQL với lệnh SELECT.
Cú pháp cơ bản:
SELECT cột1, cột2, ... FROM tên_bảng WHERE điều_kiện;
Ví dụ: Lấy tên sinh viên có ID = 1
SELECT FirstName, LastName FROM student WHERE ID = 1;
Kết quả có thể trả về: John Murphy
Tóm tắt
Bây giờ bạn đã quen thuộc với những điều cơ bản của cú pháp SQL và các tập con chính: DDL (tạo/sửa cấu trúc), DML (thao tác dữ liệu: INSERT, UPDATE, DELETE), DQL (truy vấn dữ liệu: SELECT).
Đừng lo lắng nếu bạn vẫn đang cố gắng làm quen với các tập con này. Bạn sẽ khám phá từng phần một cách chi tiết hơn sau trong khóa học, và bạn cũng sẽ có cơ hội thực hành tự mình. Tiếp tục cố gắng!
Các lệnh SQL phổ biến
Trạng thái: Dịch tự động từ Tiếng Anh
Mục tiêu của bài đọc này là dạy bạn cách đặt tên và giải thích các lệnh chính trong SQL. SQL là ngôn ngữ truy vấn cơ sở dữ liệu được sử dụng rộng rãi nhất. Nó được thiết kế để truy xuất và quản lý dữ liệu trong cơ sở dữ liệu quan hệ.
SQL có thể được sử dụng để thực hiện các loại hoạt động khác nhau trong cơ sở dữ liệu như truy cập dữ liệu, mô tả dữ liệu, thao tác dữ liệu và thiết lập vai trò và đặc quyền của người dùng (quyền).
Ở đây bạn sẽ tìm hiểu về các lệnh chính được sử dụng trong SQL. Ở giai đoạn sau, bạn sẽ khám phá các ví dụ liên quan về cách sử dụng các lệnh này với giải thích chi tiết về cú pháp SQL cho các hoạt động chính như tạo, chèn, cập nhật và xóa dữ liệu trong cơ sở dữ liệu.
Các lệnh SQL được nhóm thành bốn loại chính (thực tế thường là năm loại) gọi là DDL, DML, DQL, DCL và TCL tùy thuộc vào chức năng của chúng.
Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language)
Danh mục DDL cung cấp các lệnh để xác định, xóa và sửa đổi cấu trúc các bảng trong cơ sở dữ liệu.
Lệnh CREATE
Mục đích: Để tạo cơ sở dữ liệu hoặc các bảng bên trong cơ sở dữ liệu.
Cú pháp để tạo một bảng với ba cột:
CREATE TABLE table_name (column_name1 datatype(size), column_name2 datatype(size), column_name3 datatype(size));
Lệnh DROP
Mục đích: Để xóa một cơ sở dữ liệu hoặc một bảng bên trong cơ sở dữ liệu.
Cú pháp để xóa bảng:
DROP TABLE table_name;
Lệnh ALTER
Mục đích: Để thay đổi cấu trúc của các bảng trong cơ sở dữ liệu (thay đổi tên bảng, thêm khóa chính, thêm/xóa cột…).
Cú pháp để thêm một cột vào bảng:
ALTER TABLE table_name ADD (column_name datatype(size));
Cú pháp để thêm khóa chính vào bảng:
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
Lệnh TRUNCATE
Mục đích: Để xóa tất cả các bản ghi khỏi một bảng (làm trống bảng nhưng không xóa cấu trúc bảng).
Cú pháp:
TRUNCATE TABLE table_name;
Lệnh COMMENT
Mục đích: Để thêm nhận xét giải thích hoặc ghi chú trong mã SQL (không được thực thi).
Cú pháp cho comment một dòng:
-- Retrieve all data from a table
SELECT * FROM table_name;
Ngôn ngữ truy vấn dữ liệu (DQL - Data Query Language)
DQL cung cấp khả năng truy vấn và truy xuất dữ liệu từ cơ sở dữ liệu.
Lệnh SELECT
Mục đích: Để truy xuất dữ liệu từ các bảng trong cơ sở dữ liệu.
Cú pháp cơ bản:
SELECT * FROM table_name;
Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language)
DML cung cấp khả năng chèn, cập nhật và xóa dữ liệu trong cơ sở dữ liệu.
Lệnh INSERT
Mục đích: Để thêm bản ghi dữ liệu vào một bảng hiện có.
Cú pháp chèn dữ liệu vào ba cột:
INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
Lệnh UPDATE
Mục đích: Để sửa đổi hoặc cập nhật dữ liệu có trong bảng.
Cú pháp cập nhật hai cột:
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
Lệnh DELETE
Mục đích: Để xóa dữ liệu khỏi một bảng trong cơ sở dữ liệu.
Cú pháp:
DELETE FROM table_name WHERE condition;
Ngôn ngữ kiểm soát dữ liệu (DCL - Data Control Language)
DCL được sử dụng để quản lý quyền và đặc quyền của người dùng trong hệ thống cơ sở dữ liệu.
- GRANT: Cung cấp cho người dùng các đặc quyền cần thiết để truy cập và thao tác cơ sở dữ liệu.
- REVOKE: Xóa quyền đã cấp từ người dùng.
Ngôn ngữ kiểm soát giao dịch (TCL - Transaction Control Language)
TCL được sử dụng để quản lý các giao dịch trong cơ sở dữ liệu, đảm bảo tính toàn vẹn dữ liệu khi thực hiện các lệnh DML.
- COMMIT: Lưu tất cả các thay đổi đã thực hiện trong cơ sở dữ liệu (kết thúc giao dịch thành công).
- ROLLBACK: Khôi phục cơ sở dữ liệu về trạng thái cam kết cuối cùng (hủy bỏ các thay đổi chưa commit).
Tài nguyên bổ sung
Các tài nguyên sau đây là một số tài liệu đọc bổ sung giới thiệu cho bạn về SQL. Những điều này sẽ cho phép bạn nâng cao kiến thức của bạn về cú pháp SQL và các lệnh SQL phổ biến (DQL, DML và DDL) mà bạn đã học được trong suốt bài học này.
Java PointSách dành cho người mới bắt đầu
Cấu trúc bảng trong cơ sở dữ liệu quan hệ
Ở giai đoạn này của khóa học, bạn có thể đã quen thuộc với những điều cơ bản về cách cơ sở dữ liệu lưu trữ và tương tác với dữ liệu. Nhưng làm thế nào để chúng lưu trữ tất cả dữ liệu này và trình bày nó một cách hợp lý? Ở dạng bảng.
Đến cuối phần này, bạn sẽ có thể:
- Phác thảo bảng cơ sở dữ liệu là gì ở cấp độ khái niệm
- Giải thích cách dữ liệu được cấu trúc trong bảng cơ sở dữ liệu
Bảng cơ sở dữ liệu là gì?
Bảng được tạo thành từ các hàng và cột chứa dữ liệu. Một cơ sở dữ liệu chứa nhiều bảng. Các bảng này được gọi là quan hệ vì tất cả chúng đều liên quan đến nhau.
Theo nghĩa khái niệm hoặc logic:
- Bảng còn được gọi là thực thể (entity) trong cơ sở dữ liệu quan hệ hoặc hướng đối tượng (OO DB).
- Một thực thể là một đối tượng có các thuộc tính (giống như các cột hoặc trường trong bảng).
Vì vậy, về bản chất: bảng, thực thể và đối tượng đều đề cập đến cùng một khái niệm.
Cột (Column / Field / Attribute)
Mỗi cột (hay còn gọi là trường hoặc thuộc tính) có một tên và kiểu dữ liệu duy nhất.
Ví dụ: Trong bảng nhân viên của một công ty, dữ liệu được sắp xếp trong các cột như:
- ID
- Họ tên
- Vai trò
- Ngày sinh
Mỗi cột có thể chứa các loại dữ liệu khác nhau (số, chuỗi, ngày tháng, v.v.).
Kiểu dữ liệu (Data Type)
Kiểu dữ liệu của cột xác định loại giá trị mà cột có thể chứa, ví dụ:
- Ký tự / Chuỗi (string / text)
- Số nguyên (integer)
- Số thực (float / decimal)
- Ngày giờ (date / datetime)
- Nhị phân (binary – dùng cho hình ảnh, tệp, v.v.)
Tùy thuộc vào nhà phát triển để quyết định kiểu dữ liệu cho mỗi cột. Kiểu dữ liệu cũng là hướng dẫn cho hệ thống về loại dữ liệu mong đợi và cách lưu trữ vật lý.
Lưu ý: Các kiểu dữ liệu có thể khác nhau tùy theo hệ thống cơ sở dữ liệu (MySQL, PostgreSQL, SQL Server, Oracle, Access, v.v.). Luôn tham khảo tài liệu của hệ thống cụ thể để biết các kiểu dữ liệu được hỗ trợ.
Nói chung, hầu hết các hệ thống đều hỗ trợ:
- Chuỗi (string/text) – lưu trữ ký tự và chuỗi ký tự
- Số (numeric) – số chính xác (integer) hoặc gần đúng (float/decimal)
- Ngày giờ (date/time)
- Nhị phân (binary) – hình ảnh, tệp, dữ liệu khác
Đây là các cột của bảng. Ngoài ra còn có sáu hàng trong bảng này; một hàng cho mỗi học sinh. Nói cách khác, bảng chứa hồ sơ của sáu sinh viên. Mỗi ô trong một hàng hoặc bản ghi chứa một phần dữ liệu như ID học sinh = 1, tên = Emily, họ = Williams, v.v. Bảng cơ sở dữ liệu chứa các kiểu dữ liệu khác nhau
Miền giá trị (Domain)
Một khái niệm quan trọng khác là miền (domain): tập hợp các giá trị hợp lệ có thể được gán cho một thuộc tính.
Ví dụ:
- Miền số: chỉ chấp nhận giá trị số
- Miền chuỗi: chỉ chấp nhận ký tự hoặc chuỗi ký tự
Mỗi miền bao gồm các quy tắc về độ dài, phạm vi giá trị và các ràng buộc khác để đảm bảo tính hợp lệ của dữ liệu.
Hàng (Row / Record / Tuple)
Một hàng trong bảng được gọi là bản ghi (record).
Bản ghi là sự kết hợp của các giá trị trong tất cả các cột của bảng.
Ví dụ: Trong bảng nhân viên, mỗi nhân viên có một bản ghi duy nhất chứa thông tin đầy đủ về họ (ID, họ tên, vai trò, ngày sinh, v.v.).
Khóa chính (Primary Key)
Mỗi bản ghi trong bảng phải được xác định duy nhất bằng khóa chính (primary key).
Khóa chính thường là:
- Một cột có giá trị duy nhất (ví dụ: cột ID trong bảng nhân viên – mỗi ID là duy nhất)
- Hoặc sự kết hợp của nhiều cột (nếu một cột đơn không đủ để đảm bảo tính duy nhất)
Lý do: Các cột khác có thể chứa giá trị lặp lại (ví dụ: nhiều nhân viên có cùng tên hoặc cùng vai trò), nhưng khóa chính đảm bảo mỗi bản ghi là riêng biệt.
Tóm tắt
Bây giờ bạn nên làm quen với:
- Cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong các bảng
- Cấu trúc cơ bản của bảng: cột (field/attribute), hàng (record), kiểu dữ liệu, miền giá trị
- Khóa chính để đảm bảo tính duy nhất của mỗi bản ghi
Bạn cũng có thể giải thích các khái niệm chính như cột, hàng và khóa. Công việc tuyệt vời!
Tổng quan về bảng trong cơ sở dữ liệu quan hệ
Trong bài đọc này, bạn sẽ tìm hiểu thêm về các bảng trong cơ sở dữ liệu quan hệ. Bây giờ bạn đã được giới thiệu về khái niệm bảng, đã xem xét một vài ví dụ về bảng và đã hiểu cơ bản về vai trò của khóa chính trong bảng.
Mục tiêu chính của bài đọc này là khám phá sâu hơn về:
- Cấu trúc của bảng
- Kiểu dữ liệu
- Khóa chính và khóa ngoại
- Vai trò của chúng trong bảng
- Các ràng buộc bảng (integrity constraints)
Bảng cơ sở dữ liệu là gì?
Một bảng là loại đối tượng cơ bản nhất trong cơ sở dữ liệu quan hệ. Nó chịu trách nhiệm lưu trữ dữ liệu.
Giống như bảng tính thông thường, bảng cơ sở dữ liệu bao gồm:
- Hàng (rows): Chạy theo chiều ngang, mỗi hàng đại diện cho một bản ghi (record) hoặc tuple.
- Cột (columns): Chạy theo chiều dọc, mỗi cột đại diện cho một trường (field) hoặc thuộc tính.
Nơi hàng và cột giao nhau là một ô (cell), nơi lưu trữ một giá trị dữ liệu cụ thể.
Mỗi cột có tên mô tả dữ liệu được lưu trữ trong đó, ví dụ: FirstName, LastName, ProductID, Price, StudentID, v.v.
Kiểu dữ liệu là gì?
Mỗi cột trong bảng phải có một kiểu dữ liệu (data type) được định nghĩa bởi SQL. Kiểu dữ liệu xác định loại giá trị có thể được lưu trữ trong cột đó.
Một số kiểu dữ liệu phổ biến:
- Số: INT, TINYINT, BIGINT, FLOAT, REAL
- Ngày và giờ: DATE, TIME, DATETIME
- Ký tự / Chuỗi: CHAR, VARCHAR
- Nhị phân: BINARY, VARBINARY
- Khác:
- CLOB (Character Large Object) – lưu trữ khối văn bản lớn
- BLOB (Binary Large Object) – lưu trữ dữ liệu nhị phân như hình ảnh
Ví dụ bảng Sinh viên
Bảng Sinh viên lưu trữ thông tin về học sinh, bao gồm các cột:
- StudentID (INT)
- FirstName (VARCHAR)
- LastName (VARCHAR)
- DateOfBirth (DATE)
- HomeAddress (VARCHAR)
- Advisor (VARCHAR)
Bảng này có sáu hàng, mỗi hàng đại diện cho một sinh viên (một bản ghi).
Mỗi ô chứa một phần dữ liệu cụ thể, ví dụ: StudentID = 1, FirstName = Emily, LastName = Williams, v.v.
Các bảng trong cơ sở dữ liệu quan hệ
Trong cơ sở dữ liệu quan hệ, có nhiều bảng đại diện cho các thực thể khác nhau của hệ thống. Ví dụ: trong Hệ thống thông tin học sinh, có thể có các bảng: Sinh viên, Giáo viên, Lớp học, Môn học.
Trong thuật ngữ cơ sở dữ liệu quan hệ:
- Bảng còn được gọi là mối quan hệ (relation)
- Hàng / bản ghi còn được gọi là tuple
Mỗi bảng có lược đồ (schema) riêng, bao gồm:
- Tên bảng
- Danh sách thuộc tính (cột)
- Tên cột
- Kiểu dữ liệu của từng cột
Khóa chính (Primary Key) là gì?
Khóa chính là một cột (hoặc tập hợp cột) có khả năng xác định duy nhất mỗi hàng (bản ghi) trong bảng.
Ví dụ: Trong bảng Sinh viên, cột StudentID là khóa chính vì mỗi giá trị là duy nhất. Các cột khác như FirstName, LastName có thể trùng lặp giữa các sinh viên.
Trong một số trường hợp, khóa chính là khóa chính tổng hợp (composite primary key) – bao gồm nhiều cột khi một cột đơn không đủ để đảm bảo tính duy nhất.
Ví dụ: Trong bảng nhân viên, nếu EMP_ID không duy nhất, có thể dùng kết hợp EMP_ID + DEPT_ID làm khóa chính.
Khóa ngoại (Foreign Key) là gì?
Các bảng trong cơ sở dữ liệu không tồn tại độc lập mà liên kết với nhau.
Khóa ngoại là một cột (hoặc tập hợp cột) trong một bảng tham chiếu đến khóa chính của bảng khác, tạo mối quan hệ giữa hai bảng.
Ví dụ: Bảng Khoa có cột StudentID là khóa ngoại, tham chiếu đến cột StudentID (khóa chính) trong bảng Sinh viên.
Ràng buộc tính toàn vẹn (Integrity Constraints)
Mỗi bảng phải tuân theo các quy tắc để đảm bảo dữ liệu chính xác và nhất quán. Có ba loại ràng buộc chính:
1. Ràng buộc khóa chính (Entity Integrity)
Mỗi bảng phải có một khóa chính. Giá trị khóa chính:
- Không được NULL
- Phải duy nhất cho mỗi hàng
Ví dụ: StudentID trong bảng Sinh viên không thể NULL và không trùng lặp.
2. Ràng buộc miền (Domain Integrity)
Quy định các giá trị hợp lệ cho một cột.
Ví dụ:
- Cột FirstName chỉ chấp nhận chuỗi ký tự, không phải số
- Số điện thoại không vượt quá 10 chữ số
3. Ràng buộc tham chiếu (Referential Integrity)
Khi có khóa ngoại, giá trị trong cột khóa ngoại phải tồn tại trong cột khóa chính của bảng được tham chiếu.
Ví dụ: Giá trị StudentID trong bảng Khoa phải tồn tại trong cột StudentID của bảng Sinh viên.
Tóm tắt
Trong bài đọc này, bạn đã khám phá sâu hơn về bảng trong cơ sở dữ liệu quan hệ: cấu trúc (hàng, cột), kiểu dữ liệu, lược đồ bảng, khóa chính, khóa ngoại và các ràng buộc tính toàn vẹn (entity, domain, referential integrity).
Những khái niệm này là nền tảng để thiết kế và quản lý cơ sở dữ liệu một cách hiệu quả và đáng tin cậy.
Tổng quan về cấu trúc cơ sở dữ liệu
Trong bài đọc này, bạn sẽ tìm hiểu thêm về cấu trúc cơ sở dữ liệu cơ bản. Bạn đã được giới thiệu về bảng là gì trong cơ sở dữ liệu, cấu trúc cơ bản của bảng, kiểu dữ liệu, khóa chính và khóa ngoại là gì và vai trò của chúng trong một bảng. Bạn cũng đã học về các ràng buộc bảng.
Mục tiêu chính của bài đọc này là bao gồm cấu trúc cơ bản của cơ sở dữ liệu. Nói cách khác, bạn sẽ tìm hiểu thêm về các bảng, trường (hoặc thuộc tính), bản ghi, khóa và mối quan hệ bảng.
Cấu trúc cơ sở dữ liệu là gì?
Cấu trúc cơ sở dữ liệu đề cập đến cách dữ liệu được sắp xếp trong cơ sở dữ liệu. Trong cơ sở dữ liệu, dữ liệu liên quan được nhóm lại thành các bảng, mỗi bảng bao gồm các hàng (còn được gọi là tuple) và cột, giống như trong bảng tính.
Cấu trúc của cơ sở dữ liệu bao gồm một tập hợp các thành phần chính:
- Bảng hoặc thực thể – nơi dữ liệu được lưu trữ
- Thuộc tính – chi tiết mô tả về bảng hoặc thực thể
- Trường (cột) – dùng để nắm bắt các thuộc tính
- Bản ghi (hàng) – chi tiết về một thực thể cụ thể
- Khóa chính – giá trị duy nhất cho mỗi thực thể
Hình ảnh này cho thấy các yếu tố cấu trúc cơ bản của một bảng cơ sở dữ liệu.
Ví dụ về một bảng trong cơ sở dữ liệu với các yếu tố chính của cấu trúc được đánh dấu.
Bảng (Table)
Một bảng chứa tất cả các trường, thuộc tính và bản ghi cho một loại thực thể. Một cơ sở dữ liệu thường chứa nhiều bảng.
Trường (Field / Column)
Tiêu đề cột được gọi là trường. Mỗi trường chứa một thuộc tính khác nhau.
Đối với mỗi bảng, một đơn vị dữ liệu được nhập vào mỗi trường (còn gọi là giá trị cột). Mỗi cột có một kiểu dữ liệu.
Ví dụ: cột “agent_name” có kiểu dữ liệu văn bản, cột “commission” có kiểu dữ liệu số.
Giá trị cột hoặc đơn vị dữ liệu
Mỗi phần dữ liệu riêng lẻ được nhập vào một cột là một đơn vị dữ liệu (phần tử dữ liệu hoặc giá trị cột).
Bản ghi (Record / Row)
Một bản ghi bao gồm một bộ sưu tập dữ liệu cho mỗi thực thể. Nó còn được gọi là một hàng trong bảng.
Kiểu dữ liệu (Data Type)
Để giữ cho dữ liệu nhất quán từ bản ghi này sang bản ghi tiếp theo, một kiểu dữ liệu thích hợp được gán cho mỗi cột. Kiểu dữ liệu xác định loại dữ liệu nào có thể được lưu trữ trong cột.
Kiểu dữ liệu cũng là cách phân loại giá trị dữ liệu. Các loại giá trị khác nhau yêu cầu dung lượng bộ nhớ khác nhau và hỗ trợ các thao tác khác nhau.
Một số kiểu dữ liệu phổ biến:
- Số: INT, TINYINT, BIGINT, FLOAT, REAL
- Ngày và giờ: DATE, TIME, DATETIME
- Ký tự / Chuỗi: CHAR, VARCHAR
- Nhị phân: BINARY, VARBINARY
- Khác:
- CLOB (Character Large Object) – lưu trữ khối văn bản lớn
- BLOB (Binary Large Object) – lưu trữ dữ liệu nhị phân như hình ảnh
Cấu trúc cơ sở dữ liệu logic
Cấu trúc logic của cơ sở dữ liệu được biểu diễn bằng Sơ đồ quan hệ thực thể (Entity-Relationship Diagram – ERD). Đây là biểu diễn trực quan về cách cơ sở dữ liệu sẽ được triển khai thành bảng trong quá trình thiết kế vật lý, sử dụng DBMS như MySQL hoặc Oracle.
Một phần quan trọng của cấu trúc logic là cách thiết lập mối quan hệ giữa các thực thể. Có ba loại mối quan hệ cơ bản (tính hồng y – cardinality):
- Mối quan hệ một đối một (One-to-One)
- Mối quan hệ một với nhiều (One-to-Many)
- Mối quan hệ nhiều đối với nhiều (Many-to-Many)
Sơ đồ quan hệ thực thể với một loạt các mối quan hệ khác nhau giữa các thực thể.
Cấu trúc cơ sở dữ liệu vật lý
Trong cấu trúc vật lý, các thực thể được triển khai dưới dạng bảng. Mối quan hệ giữa các bảng được thiết lập bằng khóa ngoại (foreign key).
Khóa ngoại là một trường trong một bảng tham chiếu đến một trường chung trong bảng khác (thường là khóa chính).
Ví dụ: Trong cơ sở dữ liệu có hai bảng Sinh viên và Bộ phận:
- Bảng Sinh viên có khóa chính: stud_ID
- Bảng Bộ phận có cột stud_ID là khóa ngoại tham chiếu đến stud_ID trong bảng Sinh viên
Do đó, hai bảng được liên kết với nhau thông qua trường stud_ID.
Cấu trúc cơ sở dữ liệu vật lý với ví dụ khóa chính và khóa ngoại.
Tóm tắt
Trong bài đọc này, bạn đã tìm hiểu thêm về cấu trúc cơ sở dữ liệu cơ bản bao gồm:
- Bảng, trường (thuộc tính), bản ghi
- Kiểu dữ liệu
- Khóa chính và khóa ngoại
- Mối quan hệ giữa các bảng
- Cấu trúc logic (ERD) và cấu trúc vật lý
Những khái niệm này là nền tảng để hiểu và thiết kế cơ sở dữ liệu quan hệ một cách hiệu quả.
Mối quan hệ giữa các bảng trong cơ sở dữ liệu quan hệ
Ở giai đoạn này của khóa học, bạn có thể đã quen thuộc với mô hình cơ sở dữ liệu quan hệ, nhưng để hiểu đầy đủ cách mô hình này hoạt động, trước tiên bạn cần hiểu các bảng trong cơ sở dữ liệu có liên quan như thế nào.
Về cơ bản, các mối quan hệ được thiết lập giữa các bảng với việc sử dụng các khóa. Đến cuối phần này, bạn sẽ có thể:
- Xác định các khóa chính được sử dụng trong các bảng trong cơ sở dữ liệu quan hệ
- Giải thích mối quan hệ giữa các khóa trong bảng
Mô hình cơ sở dữ liệu quan hệ dựa trên hai khái niệm chính
Mô hình cơ sở dữ liệu quan hệ dựa trên:
- Các thực thể được định nghĩa là bảng
- Quan hệ (mối quan hệ) kết nối các bảng liên quan
Để nhận ra cách mô hình này hoạt động, bạn cần hiểu các thuộc tính và các loại khóa khác nhau tồn tại trong cơ sở dữ liệu quan hệ.
Ví dụ minh họa: Giải đấu thể thao
Hãy sử dụng ví dụ về một cuộc thi thể thao với ba bảng:
- Bảng Xếp hạng: Theo dõi vị trí của mỗi đội trong giải đấu, tên đội và tiểu bang mà họ đại diện
- Bảng Đội: Theo dõi tên đội, đội trưởng và huấn luyện viên đội
- Bảng Điểm: Ghi lại vị trí của đội trong giải, tên đội và số điểm đội có trong mùa giải này
Lưu ý rằng bảng Đội bao gồm tên đội, cũng xuất hiện trong bảng Xếp hạng và bảng Điểm. Đây là cách các bảng liên kết với nhau qua các thuộc tính chung.
Các loại thuộc tính trong bảng
Mỗi cột trong bảng đại diện cho một thuộc tính của thực thể.
Các thuộc tính có thể là:
- Thuộc tính đơn giá trị (Single-valued attribute): Chứa một giá trị duy nhất cho mỗi hàng.
Ví dụ: Trong bảng nhân viên, thuộc tính tên nhân viên là một giá trị duy nhất trong mỗi hàng. - Thuộc tính đa giá trị (Multi-valued attribute): Có thể chứa nhiều giá trị (ví dụ: danh sách các môn học được dạy).
Lưu ý: Nên tránh thuộc tính đa giá trị trong thiết kế cơ sở dữ liệu quan hệ. Bạn sẽ học thêm về khái niệm này sau trong khóa học.
Các loại khóa (Key) trong cơ sở dữ liệu quan hệ
Khóa chính (Primary Key)
Đây là một giá trị được sử dụng để xác định duy nhất một bản ghi dữ liệu riêng lẻ trong bảng.
Ví dụ: Trong bảng nhân viên, thuộc tính Staff_ID là khóa chính vì nó có giá trị duy nhất trong mỗi hàng.
Khóa ứng cử viên (Candidate Key)
Bất kỳ thuộc tính nào chứa một giá trị duy nhất trong mỗi hàng của bảng.
Ví dụ: Trong bảng nhân viên, cả Staff_ID và số liên lạc (contact number) đều là khóa ứng cử viên vì mỗi giá trị là duy nhất.
Các cột khác có thể chứa thông tin lặp lại nên được chỉ định là thuộc tính phi chính (non-key attribute).
Khóa tổng hợp (Composite Key)
Là khóa bao gồm hai hoặc nhiều thuộc tính để tạo thành một giá trị duy nhất cho mỗi hàng.
Ví dụ: Sự kết hợp của tên nhân viên và chức danh nhân viên (nếu không có hai nhân viên nào có cùng tổ hợp này).
Khóa tổng hợp thường được xem xét khi không thể xác định được một khóa thuộc tính duy nhất.
Khóa thay thế / Khóa phụ (Alternate Key / Secondary Key)
Là khóa ứng cử viên không được chọn làm khóa chính.
Ví dụ: Trong bảng nhân viên, nếu Staff_ID là khóa chính, thì số liên lạc sẽ là khóa thay thế (vẫn duy nhất nhưng không được chọn làm primary key).
Khóa ngoại (Foreign Key)
Là một thuộc tính trong một bảng tham chiếu đến một khóa duy nhất (thường là khóa chính) trong bảng khác.
Ví dụ: ID của nhân viên có thể là khóa ngoại trong một hoặc nhiều bảng khác trong cơ sở dữ liệu của trường đại học.
Mối quan hệ giữa khóa chính và khóa ngoại sẽ được thảo luận chi tiết hơn ở phần sau của khóa học.
Tóm tắt
Bây giờ bạn đã quen thuộc với các loại khóa khác nhau trong cơ sở dữ liệu quan hệ:
- Khóa chính (Primary Key)
- Khóa ứng cử viên (Candidate Key)
- Khóa tổng hợp (Composite Key)
- Khóa thay thế / Khóa phụ (Alternate/Secondary Key)
- Khóa ngoại (Foreign Key)
Những khái niệm này là nền tảng để hiểu cách các bảng liên kết và mối quan hệ được thiết lập trong mô hình cơ sở dữ liệu quan hệ.
Tài nguyên bổ sung
Các tài nguyên sau đây là tài liệu đọc cung cấp kiến thức bổ sung về thiết kế cơ sở dữ liệu và cấu trúc cơ sở dữ liệu quan hệ.
MicrosoftIBM