Dưới đây là các cơ sở dữ liệu mẫu cho Data Analyst nguồn dữ liệu phong phú và đa dạng, giúp họ trải nghiệm và thực hành các kỹ năng phân tích. Hãy cùng SmartData khám phá bộ sưu tập độc đáo này để nâng cao khả năng phân tích và giải quyết vấn đề thực tế.
Một Database mẫu sẽ được mô tả qua các bước sau:
- Biểu đồ mô tả mối quan hệ thực thể ERD (Entity Relationship Diagram)
- Giải thích các bảng và cột theo biểu đồ ERD.
- Các câu lệnh tạo bảng và câu lệnh tạo dữ liệu mẫu
OK, bây giờ ta sẽ đi vào một vài mẫu Database
Cơ sở dữ liệu Movie
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu Movie Database
Cơ sở dữ liệu này lưu trữ thông tin về các bộ phim, diễn viên và nhóm làm phim tham gia, nơi sản xuất bộ phim và bởi công ty nào, cùng với các thông tin khác về bộ phim như ngôn ngữ, thể loại và từ khóa.
Dữ liệu mẫu được lấy từ nguồn dữ liệu trực tuyến miễn phí. Nó bao gồm khoảng 4.800 bộ phim, 104.000 diễn viên và nhóm làm phim, và hàng ngàn bản ghi về siêu dữ liệu như ngôn ngữ và từ khóa.
Giải thích Bảng và cột
- Bảng movie chứa thông tin về mỗi bộ phim. Có các mô tả văn bản như tiêu đề và tóm tắt. Một số trường dễ hiểu hơn như doanh thu (số tiền mà bộ phim kiếm được), ngân sách (số tiền chi trả để tạo bộ phim). Các trường khác được tính toán dựa trên dữ liệu được sử dụng để tạo nguồn dữ liệu: độ phổ biến, điểm trung bình của bình chọn và số lần bình chọn. Trạng thái chỉ ra xem bộ phim đã được phát hành, đồn đoán hay đang trong quá trình sản xuất.
- Bảng country chứa danh sách các quốc gia khác nhau, và bảng movie_country chứa một bản ghi về các quốc gia mà một bộ phim đã được quay (do một số bộ phim được quay ở nhiều quốc gia). Đây là một bảng nhiều-nhiều tiêu chuẩn, và bạn sẽ thấy chúng trong nhiều cơ sở dữ liệu.
- Tương tự áp dụng cho bảng production_company. Có danh sách các công ty sản xuất và một mối quan hệ nhiều-nhiều với các bộ phim, được lưu trong bảng movie_company.
- Bảng languages có danh sách các ngôn ngữ, và bảng movie_languages lưu trữ danh sách các ngôn ngữ trong một bộ phim. Khác biệt trong cấu trúc này là sự thêm vào của bảng language_role. Bảng language_role này chứa hai bản ghi: Original và Spoken. Một bộ phim có thể có một ngôn ngữ gốc (ví dụ: tiếng Anh), nhưng nhiều ngôn ngữ nói. Điều này được lưu trong bảng movie_languages cùng với một vai trò.
- Bảng genders định nghĩa bộ phim thuộc thể loại nào, ví dụ như Hài hước hoặc Kinh dị. Một bộ phim có thể thuộc nhiều thể loại, đó là lý do tại sao bảng movie_genres tồn tại.
- Khái niệm tương tự cũng áp dụng cho bảng keywords, nhưng có nhiều từ khóa hơn so với thể loại. Tôi không chắc điều gì đủ để được gọi là từ khóa, nhưng bạn có thể khám phá dữ liệu và xem xét. Một số ví dụ như “paris”, “gunslinger” hoặc “saving the world”.
- Phần diễn viên và ekip của cơ sở dữ liệu phức tạp hơn một chút. Diễn viên, nữ diễn viên và các thành viên ekip đều là con người, đảm nhiệm các vai trò khác nhau trong một bộ phim. Thay vì có các danh sách riêng biệt về tên cho ekip và diễn viên, cơ sở dữ liệu này chứa một bảng gọi là person, có tên của mỗi người.
- Bảng movie_cast chứa các bản ghi về mỗi người trong một bộ phim với vai trò là diễn viên. Nó chứa tên nhân vật của họ, cùng với cast_order, mà tôi tin là chỉ số thứ tự xuất hiện cao hơn trong danh sách diễn viên.
- Bảng movie_cast cũng kết nối với bảng gender, để chỉ ra giới tính của mỗi nhân vật. Giới tính liên kết với bảng movie_cast thay vì bảng person để đáp ứng cho các nhân vật có thể có giới tính khác với người, hoặc các nhân vật có giới tính không rõ. Điều này có nghĩa là không có bảng giới tính liên kết với bảng person, nhưng điều đó là do dữ liệu mẫu.
- Bảng movie_crew tuân theo một khái niệm tương tự và lưu trữ tất cả các thành viên ekip cho tất cả các bộ phim. Mỗi thành viên ekip có một công việc, thuộc một phòng ban (ví dụ: Máy quay).
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data Movie
Luyện tập truy vấn dữ liệu cho DA
- Liệt kê tất cả bộ phim đã phát hành
- Top 10 phim có doanh thu cao nhất
- Liệt kê tất cả các quốc gia mà bộ phim có ID = 1 đã quay
- Liệt kê tất cả các ngôn ngữ gốc của bộ phim
- Top 5 công ty sản xuất có nhiều phim nhất
- Liệt kê tất cả các thể loại của bộ phim có ID = 2
- Top 3 từ khóa phổ biến nhất trong tất cả các bộ phim
- Liệt kê tất cả diễn viên của bộ phim có ID = 3
- Liệt kê tất cả ekip của bộ phim có ID = 4
- Top 10 diễn viên tham gia nhiều phim nhất
- Tìm số lượng phim của mỗi trạng thái
- Top 5 phim có ngân sách cao nhất
- Liệt kê tất cả phim quay ở Pháp
- Top 10 phim có điểm bình chọn cao nhất
- Liệt kê tất cả phim mà diễn viên có ID = 5 đã tham gia
- Liệt kê tất cả phim mà thành viên ekip có ID = 10 đã tham gia
- Tìm số lượng phim được sản xuất bởi mỗi công ty
- Phim nào có nhiều từ khóa nhất
- Diễn viên nào tham gia nhiều bộ phim nhất trong năm 2022
- Liệt kê các phim quay ở ít nhất 3 quốc gia khác nhau
- Top 5 ngôn ngữ được sử dụng nhiều nhất trong các phim
- Tìm số lượng diễn viên theo giới tính cho mỗi bộ phim
- Top 10 phim có nhiều diễn viên nhất
- Tìm các bộ phim không có từ khóa nào
- Tìm các diễn viên không tham gia bất kỳ bộ phim nào
- Top 5 bộ phim có ngân sách thấp nhất nhưng doanh thu cao nhất
- Liệt kê tất cả các bộ phim mà có từ khóa “gunslinger”
- Các công ty sản xuất không sản xuất bộ phim nào trong năm 2021
- Liệt kê tất cả các bộ phim mà không có diễn viên nào tham gia Diễn viên nào có số lần xuất hiện đầu tiên trong danh sách diễn viên nhiều nhất
Cơ sở dữ liệu Video Games
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu Video Games Database
Cơ sở dữ liệu này lưu trữ thông tin về 11.000 trò chơi điện tử hàng đầu có doanh thu cao nhất mọi thời đại. Nó nắm bắt doanh số bán trò chơi điện tử ở Bắc Mỹ, Châu Âu, Nhật Bản và các khu vực khác được nhóm thành “Khác”. Nó có các trò chơi từ nhiều nền tảng khác nhau: PC, bảng điều khiển gần đây và bảng điều khiển cũ.
Dữ liệu mẫu được lấy từ một nguồn dữ liệu trực tuyến miễn phí. Có khoảng 11.000 trò chơi, 31 nền tảng, 577 nhà xuất bản và 4 khu vực trong bộ dữ liệu này.
Giải thích Bảng và cột
- Bảng Genre: Bảng này có một danh sách ngắn về các thể loại trò chơi, chẳng hạn như Chiến thuật hoặc Đua xe. Điều này hữu ích nếu bạn muốn xem trò chơi thuộc thể loại gì, hoặc các thể loại đang bán chạy.
- Bảng Game: Chứa danh sách tất cả các trò chơi trong cơ sở dữ liệu. Nó chỉ chứa tiêu đề và một genre_id để liên kết với bảng thể loại. Không có khái niệm về chuỗi trò chơi trong dữ liệu này (ví dụ: “Call of Duty” hoặc “Need for Speed”).
- Bảng Publisher: Chứa thông tin công ty xuất bản trò chơi điện tử.
- Bảng Game_Publisher: Đây là một bảng nối (joining table) xác định các trò chơi và nhà phát hành của chúng, vì trong nguồn dữ liệu gốc, một trò chơi có thể có nhiều nhà phát hành. Một ví dụ là các nhà phát hành khác nhau làm việc với trò chơi trên các nền tảng khác nhau (ví dụ: một trên PC và một trên XBOX).
- Bảng Platform:Danh sách các nền tảng chơi game khác nhau trong nguồn dữ liệu gốc. Ví dụ, PC, Playstation 3, XBOX360, Nintendo.
- Bảng Game_Platform: Bảng này liên kết các trò chơi, nhà phát hành và nền tảng. Sử dụng bảng này, bạn có thể thấy các trò chơi, ai đã xuất bản chúng và trên nền tảng nào (khi bạn kết hợp với các bảng liên quan).
Có một vấn đề là: Bảng cũng bao gồm năm phát hành. Tại sao năm phát hành lại ở đây mà không phải trên bảng game?
Điều này bởi vì trong nguồn dữ liệu gốc, một trò chơi có thể được phát hành bởi các nhà phát hành khác nhau trên các nền tảng khác nhau và trong các năm khác nhau. Ví dụ, SimCity 2000 được phát hành trên PC vào năm 1992 và trên PS vào năm 1996.
- Bảng Region: Danh sách 4 khu vực khác nhau mà doanh số bán hàng được ghi lại: Bắc Mỹ, Châu Âu, Nhật Bản và Các khu vực khác.
- Bảng Region_Sales: Bảng này cho thấy tất cả các doanh số bán hàng cho trò chơi ở mỗi khu vực. Đây là bảng chính được sử dụng để tính toán doanh số bán hàng cho các truy vấn.
Cột num_sales là số lượng bán hàng của trò chơi trong khu vực, và số liệu được tính bằng triệu.
Nhận xét về Thiết kế
Có một vài yếu tố và giới hạn trong nguồn dữ liệu gốc dẫn đến việc thiết kế cơ sở dữ liệu này:
- Năm phát hành áp dụng cho một sự kết hợp giữa trò chơi, nền tảng và nhà phát hành, không chỉ đơn thuần cho một trò chơi như tôi đã giả định.
- Các doanh số bán hàng được ghi lại tổng thể tại một thời điểm và không được phân chia theo các năm.
- Một trò chơi có thể có các nhà phát hành khác nhau cho các nền tảng khác nhau.
- Dữ liệu bao gồm các trò chơi phát hành trong năm 2016 và một số trò chơi phát hành trong năm 2017.
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data Video Games
Luyện tập truy vấn dữ liệu cho DA
- Lấy tất cả trò chơi và nền tảng tương ứng của chúng.
- Đếm số trò chơi thuộc thể loại có genre_id là 2.
- Hiển thị tên trò chơi và thể loại tương ứng.
- Đếm số trò chơi mà mỗi nhà xuất bản có.
- Đếm số trò chơi trên mỗi nền tảng.
- Xem nền tảng nào trò chơi có game_id là 5 được phát hành.
- Đếm số trò chơi mà mỗi nhà xuất bản đã phát hành.
- Đếm số trò chơi trong mỗi thể loại.
- Lấy danh sách trò chơi phát hành trên nền tảng có platform_id là 3.
- Đếm số trò chơi duy nhất được xuất bản.
- Đếm số trò chơi xuất bản trên mỗi nền tảng bởi mỗi nhà xuất bản.
- Đếm số trò chơi trong mỗi thể loại.
- Đếm số nền tảng mà mỗi trò chơi được phát hành.
- Hiển thị tất cả các trò chơi thuộc thể loại “Chiến thuật” và nhà xuất bản của chúng.
- Lấy danh sách các nhà xuất bản cho trò chơi trên nền tảng có platform_id là 1.
- Lấy danh sách các trò chơi được nhiều hơn một nhà xuất bản phát hành.
- Tính trung bình số trò chơi trên mỗi nền tảng bởi mỗi nhà xuất bản.
- Liệt kê các nhà xuất bản đã phát hành trò chơi trên nền tảng có platform_id là 2.
- Liệt kê các trò chơi thuộc thể loại có genre_id là 3 và nền tảng của chúng.
- Đếm số nền tảng duy nhất mà mỗi nhà xuất bản đã phát hành trò chơi.
- Liệt kê các trò chơi không có trong bảng Game_Publisher.
- Đếm số thể loại trò chơi duy nhất trên mỗi nền tảng.
- Đếm số trò chơi mỗi nhà xuất bản đã phát hành theo từng thể loại.
- Đếm số trò chơi trong mỗi thể loại trên mỗi nền tảng.
Cơ sở dữ liệu Olympic Games
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu Olympic Games Database
Nó chứa khoảng 260.000 kết quả riêng biệt cho các đối thủ tại tất cả các sự kiện kể từ năm 1896, bao gồm cả Thế vận hội mùa hè và mùa đông. Nó có tất cả các kết quả: không chỉ huy chương mà cả những người đã thi đấu và không giành được huy chương. Tất cả các sự kiện cho mỗi môn thể thao được bao gồm.
Giải thích Bảng và cột
- Bảng Sport: Bảng này chứa một danh sách tất cả các môn thể thao trong Thế vận hội: cả các môn thể thao mùa hè và mùa đông.
- Bảng Event: chứa tất cả các sự kiện khác nhau cho mỗi môn thể thao. Ví dụ, nếu một môn thể thao là “Trượt tuyết Alpine”, thì một sự kiện có thể là “Trượt tuyết Alpine Nam 1KM”. Mỗi môn thể thao có nhiều sự kiện, và các sự kiện được chia thành Nam, Nữ và Hỗn hợp.
- Bảng City: Đây đại diện cho danh sách của nhiều thành phố trên thế giới.
- Bảng Games: liệt kê tất cả các Thế vận hội từ năm 1896, năm mà chúng được tổ chức, và xác định chúng là Thế vận hội Mùa hè hoặc Đông.
- Bảng Games_City: Bảng này hiển thị tất cả các thành phố cho mỗi kỳ Thế vận hội. Đây là một bảng nối giữa thế vận hội và thành phố.
Tại sao chúng ta cần một bảng nối? Liệu Thế vận hội không luôn luôn được tổ chức tại một thành phố?
Thực ra, trong quá trình tôi tổng hợp dữ liệu này, tôi đã nhận được một số hàng trùng lặp trong kết quả. Tôi đã tìm ra rằng điều này xuất phát từ một loạt sự kiện cụ thể cho một Thế vận hội nào đó. Kết quả là trong năm 1956, Thế vận hội Mùa hè được tổ chức tại Melbourne cho hầu hết các sự kiện, nhưng do quy định nghiêm ngặt về cách ly ngựa của Úc, họ không thể mang các con ngựa tham gia các sự kiện thể thao ngựa. Vì vậy, tất cả các sự kiện thể thao ngựa đã được tổ chức tại Stockholm vào đầu năm 1956.
Vì vậy, Thế vận hội năm 1956 đã diễn ra cả ở Melbourne và Stockholm.
Ta không nhận ra điều này cho đến khi nhìn vào dữ liệu.
Điều này là bài học quý giá: chúng ta không nên giả định chúng ta biết cách dữ liệu được cấu trúc cho đến khi chúng ta xem xét chi tiết.
- Bảng noc_region: Bảng này chứa một danh sách mã NOC (Ủy ban Olympic Quốc gia) và tên của chúng. Điều này tương đương với một quốc gia tham gia thi đấu tại Thế vận hội.
- Bảng Person: Bảng này liệt kê tất cả những người đã tham gia thi đấu tại Thế vận hội. Nó bao gồm tên, giới tính, chiều cao (theo đơn vị CM) và cân nặng (theo đơn vị KG) của mỗi người. Chiều cao và cân nặng không khác biệt giữa các kỳ Thế vận hội. Nếu có sự khác biệt, nó sẽ được lưu trữ trong một bảng khác.
- Bảng Person_Region: Đây là một bảng nối liệt kê tất cả những người và các vùng NOC (quốc gia) mà họ đã thi đấu cho. Điều này ghi lại thực tế rằng một số người đã thi đấu cho nhiều quốc gia khác nhau, đó là một tình huống khác mà tôi không nhận ra cho đến khi nhìn vào dữ liệu.
- Bảng Games Competitor: Bảng này là một bảng nối liên quan một người với một Thế vận hội, cho thấy người tham gia vào các sự kiện tại mỗi Thế vận hội.
- Bảng Medal: Bảng nhỏ này liệt kê các huy chương khác nhau: Vàng, Bạc, Đồng và N/A.
- Bảng Competitor Event: Bảng này liệt kê sự kết hợp của những người tham gia (người và Thế vận hội mà họ đã thi đấu), sự kiện mà họ tham gia và huy chương (nếu có) mà họ nhận được
Nhận xét thiết kế
Có một số điều tôi phải xem xét khi thiết kế cơ sở dữ liệu này và một số điều đã được đề cập trước đó:
- Thế vận hội Olympic có thể được tổ chức ở hai thành phố khác nhau (ví dụ: Melbourne và Stockholm năm 1956).
- Một người có thể thi đấu cho hai quốc gia khác nhau trong hai Thế vận hội khác nhau.
- Chiều cao và cân nặng của một người có thể thay đổi giữa các kỳ Thế vận hội trong thực tế, nhưng trong dữ liệu tôi có, chúng không thay đổi.
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data Olympic Games
Cơ sở dữ liệu Superheroes
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu Superhero Database
Nó chứa khoảng 700 mục siêu anh hùng từ một số nguồn trực tuyến. Các siêu anh hùng cũng có một danh sách các thuộc tính (chẳng hạn như Trí thông minh và Chiến đấu) và một tập hợp các siêu năng lực.
Tuy nhiên, do bản chất của dữ liệu nguồn, không phải siêu anh hùng nào cũng có giá trị thuộc tính hoặc siêu năng lực. Đó không phải là lý tưởng, nhưng đó là một cách thực hành tốt để xử lý dữ liệu không đầy đủ và làm việc với các giá trị NULL.
Giải thích Bảng và cột
- Bảng Superhero: Đây là danh sách chính của các siêu anh hùng. Nó có tên siêu anh hùng, tên đầy đủ/tên thật, danh sách ID liên kết với các bảng khác, chiều cao (tính bằng centimet) và cân nặng (tính bằng kilôgam) của họ.
- Bảng Gender: Bảng Giới tính liệt kê ba hàng: Nam, Nữ và Không áp dụng.
- Bảng Colour: Bảng Màu chứa các tham chiếu cho màu mắt, màu da và màu tóc. Có một hàng biểu thị “không có màu”.
- Bảng Race: Bảng này hiển thị các giá trị cho các chủng tộc siêu anh hùng khác nhau, chẳng hạn như Con người.
- Bảng Publisher: Bảng Nhà xuất bản liệt kê tất cả các nhà xuất bản. Nó bao gồm hai phổ biến nhất: DC và Marvel. Nó cũng bao gồm các nhà xuất bản khác như chương trình truyền hình “Heroes” và Star Trek.
- Bảng Alignment: Bảng này hiển thị ba giá trị thể hiện cách siêu anh hùng được căn chỉnh: Tốt, Trung lập và Xấu.
- Bảng Attribute: Bảng này liệt kê sáu thuộc tính khác nhau (ví dụ: trí thông minh) có thể mô tả một siêu anh hùng.
- Bảng Hero_Attribute: Bảng này là giao điểm của thuộc tính và siêu anh hùng. Một siêu anh hùng có thể có nhiều thuộc tính và đối với mỗi thuộc tính, chúng có giá trị từ 0-100 cho biết xếp hạng của chúng. Bảng này chứa các xếp hạng đó (trong cột giá_trị_thuộc_tính).
- Bảng Superpower: Bảng siêu năng lực liệt kê tất cả các khả năng hoặc siêu năng lực hiện có mà một người có thể có.
- Bảng Hero_Power: Bảng này liệt kê ID của từng sức mạnh mà mỗi siêu anh hùng có thể có vì một siêu anh hùng có thể có nhiều hơn một siêu năng lực.
Nhận xét thiết kế
Có một vài điều tôi phải xem xét khi thiết kế cơ sở dữ liệu này:
- Không phải tất cả các siêu anh hùng đều có giá trị thuộc tính
- Không phải siêu anh hùng nào cũng có giá trị siêu năng lực
- Một số siêu anh hùng được nhắc đến nhiều lần, chẳng hạn như Green Lantern, người đã có những người khác đảm nhận vai Green Lantern.
- Nhiều thông tin đã được loại bỏ khỏi bộ dữ liệu này để giữ cho nó đơn giản, chẳng hạn như tên bí danh, nơi sinh và các thành viên gia đình.
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data Superhero
Cơ sở dữ liệu University Rankings
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu University Ranking Database
Có vài trăm trường đại học trong dữ liệu mẫu và 21 tiêu chí xếp hạng khác nhau trên ba hệ thống khác nhau. Dữ liệu tồn tại trong các năm 2005 đến 2016.
Nó không chứa mọi trường đại học trên thế giới hoặc dữ liệu cho đến năm 2018 hoặc 2019, nhưng đây là một bộ tốt để làm việc.
Giải thích Bảng và cột
- Bảng country
Đây là danh sách đơn giản gồm các quốc gia có trong tập dữ liệu. Tôi không nghĩ đó là danh sách đầy đủ tất cả các quốc gia, nhưng nó đủ cho bộ dữ liệu này.
- Bảng university
Danh sách các trường đại học được xếp hạng trong hệ thống này. Mỗi trường đại học có liên quan đến một quốc gia.
- Bảng ranking_system
Điều này chứa ba hệ thống xếp hạng khác nhau được sử dụng: Xếp hạng Đại học Thế giới của Times Higher Education, Xếp hạng Thượng Hải và Trung tâm Xếp hạng Đại học Thế giới.
- Bảng ranking_criteria
Bảng này chứa các tiêu chí khác nhau được sử dụng trong mỗi hệ thống xếp hạng, chẳng hạn như Trích dẫn và Chất lượng Giáo dục. Nó cũng chứa các tiêu chí cho Tổng số điểm cho mỗi hệ thống.
- Bảng university_year
Bảng university_year chứa các giá trị đo lường chẳng hạn như số lượng sinh viên và tỷ lệ sinh viên trên nhân viên của mỗi trường đại học trong vài năm.
- Bảng university_ranking_year
Bảng này chứa điểm số hàng năm của từng trường đại học và tiêu chí xếp hạng. Đó là bảng lớn nhất trong cơ sở dữ liệu.
Nhận xét thiết kế
Có một vài điều cần xem xét khi làm việc với dữ liệu này:
- Vì dữ liệu được chuẩn hóa nên bạn có thể muốn sử dụng PIVOT hoặc truy vấn phụ để nhận điểm ở định dạng cột, nếu đó là điều bạn thích.
- Các phép đo trong bảng univeristy_year có thể được chuyển sang bảng ratings_criteria, vì có vẻ như nó đang lưu trữ dữ liệu tương tự. Nhưng nó được tách ra vì nó không thực sự liên quan đến tiêu chí xếp hạng.
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data University Ranking
Cơ sở dữ liệu Gravity Bookstore
Biểu đồ ERD
Dưới đây là biểu đồ ERD (Thiết kế cơ sở dữ liệu) cho mẫu Bookstore Database
Giải thích Bảng và cột
- book: danh sách tất cả các sách có trong cửa hàng.
- book_author: lưu trữ các tác giả cho mỗi cuốn sách, đây là mối quan hệ nhiều-nhiều.
- author: danh sách tất cả các tác giả.
- book_language: danh sách các ngôn ngữ có thể có của sách.
- publisher: danh sách nhà xuất bản sách.
- customer: danh sách khách hàng của Hiệu sách Gravity.
- customer_address: danh sách các địa chỉ của khách hàng, vì một khách hàng có thể có nhiều địa chỉ và một địa chỉ có nhiều khách hàng.
- address_status: danh sách các trạng thái của một địa chỉ, bởi vì địa chỉ có thể là hiện tại hoặc cũ.
- address: danh sách các địa chỉ trong hệ thống.
- country: danh sách các quốc gia có địa chỉ.
- cust_order: danh sách các đơn đặt hàng của khách hàng.
- order_line: danh sách sách là một phần của mỗi đơn đặt hàng.
- shipping_method: các phương thức vận chuyển có thể có cho một đơn hàng.
- order_history: lịch sử của một đơn hàng, chẳng hạn như đã đặt, đã hủy, đã giao.
- order_status: các trạng thái có thể có của một đơn hàng.
Câu lệnh tạo bảng và dữ liệu
Chúng tôi đã chuẩn bị một số dữ liệu mẫu cho cơ sở dữ liệu này. Bạn có thể sử dụng điều này để tạo cơ sở dữ liệu này trên máy tính của riêng mình, khám phá các bảng và viết SQL trên đó.
Dữ liệu mẫu có sẵn cho Oracle, SQL Server, MySQL và Postgres và được lưu trữ trên đường link sau đây: Script Create Table and Sample Data Gravity Bookstore
Kết luận
Trên đây là một vài các mẫu Database đơn giản nhưng đã mang đầy đủ các kiến thức cơ bản nhất về SQL ví dụ như bảng, cột, dòng, các ràng buộc khóa chính khóa ngoại, hơn nữa từ những mô tả trên ta đã có thể hình dung cho mình một tư duy khi thiết kế một cơ sở dữ liệu đó là ta cần tạo bảng như thế nào để lưu được dữ liệu hay cần tạo các bảng nối sao cho tối ưu. Rất mong có thể giúp đỡ được bạn đọc.
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 3 tháng của SmartData
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: