HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN CÁC KHÁI NIỆM CƠ BẢN CƠ SỞ DỮ LIỆU Giảng viên: Chu Thị Hường NỘI DUNG • Cơ sở dữ liệu • Hệ quản trị CSDL • Các loại mô hình dữ liệu • Thảo luận 2 CƠ SỞ DỮ LIỆU • Dữ liệu (data) là gì? • Cơ sở dữ liệu (Database)? • Các ví dụ? 33 CƠ SỞ DỮ LIỆU • Dữ liệu (data) là gì? 4 CƠ SỞ DỮ LIỆU • Dữ liệu (data) là gì? • Là một mô tả hình thức về thông tin • Là thông tin của đối tượng, sự vật hiện tượng • Dữ liệu được mô tả dưới nhiều hình thức khác nhau: Là các ký tự, hình ảnh, âm thanh,… 5 CƠ SỞ DỮ LIỆU • Cơ sở dữ liệu (CSDL) • Là một tập hợp dữ liệu được tổ chức có cấu trúc, • Được lưu trữ trên những dữ liệu trữ tin thoả mãn một cách đồng thời có chọn lọc cho nhiều người dùng khác nhau và những mục đích khác nhau. 6 CƠ SỞ DỮ LIỆU • Ví dụ: Nhà cung cấp S, Sản phẩm P, nhà cung cấp S cung cấp sản phẩm P (SP). 7 CƠ SỞ DỮ LIỆU • Data & Database? Data Database Ghi chép lại: Các sự kiện Tập hợp có tổ chức của dữ liệu Chưa xử lý: Các quan sát Dữ liệu liên quan Không quan hệ: Các hình ảnh Lưu trữ, duy trì và truy xuất dữ liệu Chưa tổ chức: Các thống kê Cấu trúc logic và vật lý 8 CƠ SỞ DỮ LIỆU • Tính chất của CSDL? 9 CƠ SỞ DỮ LIỆU • Tính chất của CSDL: • • • • • • • • • Giảm trùng lặp dữ liệu Dữ liệu được chia sẻ cho nhiều người dùng. Dữ liệu được truy xuất dễ dàng. Tính trừu tượng Tính độc lập giữa chương trình và dữ liệu Tính nhất quán. Tính bảo mật. Tính cạnh tranh trong truy xuất dữ liệu. Tính phục hồi dữ liệu. 10 CƠ SỞ DỮ LIỆU • Cơ sở dữ liệu thường được điều khiển bởi hệ quản trị CSDL (Database management system - DBMS). • Dữ liệu trong các kiểu CSDL phổ biến hiện nay thường được mô hình hóa thành các dòng và cột trên các bảng xử lý và truy vấn dữ liệu hiệu quả. • Hầu hết CSDL sử dụng structured query language (SQL) cho viết và truy vấn dữ liệu. 11 CƠ SỞ DỮ LIỆU • Các kiểu CSDL: • CSDL quan hệ (Relational databases): • Dữ liệu được tổ chức dưới dạng tập hợp các bảng gồm các cột và hàng. • Hiệu quả với dữ liệu có cấu trúc. • CSDL hướng đối tượng (Object-oriented databases): • Dữ liệu biểu diễn dưới dạng các đối tượng, như trong lập trình hướng đối tượng. 12 CƠ SỞ DỮ LIỆU • Các kiểu CSDL: • CSDL phân tán (Distributed databases): • Bao gồm hai hoặc nhiều files nằm trên vị trí khác nhau. • Database có thể được lưu trữ trên nhiều máy tính nằm cùng một vị trí hoặc rải rác trên các mạng khác nhau. 13 CƠ SỞ DỮ LIỆU • Các kiểu CSDL: • Kho dữ liệu (Data warehouses): • Là kho lưu trữ dữ liệu trung tâm được thiết kế đặc biệt để truy vấn và phân tích nhanh. • NoSQL databases: • CSDL không quan hệ, cho phép lưu trữ và thao tác với dữ liệu không có cấu trúc hoặc bán cấu trúc. 14 CƠ SỞ DỮ LIỆU • Các kiểu CSDL: • CSDL đồ thị (Graph databases): • Lưu trữ dữ liệu thành các thực thể và mối quan hệ giữa các thực thể. • OLTP (Online Transactional Processing) databases. • CSDL OLTP là cơ sở dữ liệu phân tích nhanh, được thiết kế cho số lượng lớn giao dịch được thực hiện bởi nhiều người dùng. 15 CƠ SỞ DỮ LIỆU • Các kiểu CSDL: • Có rất nhiều kiểu CSDL, dưới đây một số CSDL được phát triển gần đây: • Open source databases • Cloud databases • Multimodel database • Document/JSON database • Self-driving databases 16 HỆ QUẢN TRỊ CSDL • Hệ quản trị CSDL? • Hệ quản trị CSDL quan hệ? • Các hệ quản trị CSDL phổ biến? 17 HỆ QUẢN TRỊ CSDL • Hệ quản trị CSDL (Database Management System DBMS): • Là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ sở dữ liệu đó. 18 HỆ QUẢN TRỊ CSDL • DBMS: 19 HỆ QUẢN TRỊ CSDL • Hệ quản trị CSDL quan hệ (Relational Database Management System - RDBMS): • Là hệ quản trị CSDL được sử dụng trên mô hình dữ liệu quan hệ. 20 HỆ QUẢN TRỊ CSDL • RDBMS: 21 HỆ QUẢN TRỊ CSDL • Các chức năng của hệ quản trị CSDL? 22 HỆ QUẢN TRỊ CSDL • Các chức năng của hệ quản trị CSDL: • • • • • • Kiểm soát được tính dư thừa của dữ liệu Chia sẻ dữ liệu Hạn chế những truy cập không cho phép Cung cấp nhiều giao diện Đảm bảo các ràng buộc toàn vẹn Khả năng sao lưu dự phòng khi gặp sự cố,… 23 HỆ QUẢN TRỊ CSDL • Các hệ quản trị CSDL phổ biến: • Access, • Foxpro, • MySQL, • SQL Server, • Oracle, •… 24 KIẾN TRÚC HỆ QUẢN TRỊ CSDL Mức khung nhìn Mức logic View 1 View 2 Ý nghĩa, vai trò mỗi mức? View … View n Shema logic Mức vật lý 25 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Mức vật lý: • Mô tả dữ liệu được lưu trữ một cách thực sự như thế nào? • Các tệp dữ liệu được lưu trữ trên các thiết bị nhớ thứ cấp (ổ đĩa, …) • Mức logic: • Mô tả những dữ liệu nào được lưu trữ và mối quan hệ nào tồn tại giữa các dữ liệu. • Được xác định người quản trị CSDL 26 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Khung nhìn: • Mô tả chỉ một phần của toàn bộ CSDL. • Cung cấp nhiều khung nhìn đối với cùng một cơ sở dữ liệu. 27 KIẾN TRÚC CLIENT/SERVER 28 KIẾN TRÚC CLIENT/SERVER 29 KIẾN TRÚC PHÂN TÁN 30 KIẾN TRÚC HỆ QUẢN TRỊ CSDL 31 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Applications: • Là các chương trình ứng dụng kết nối và khai thác dữ liệu. • End User: • Là người dùng Database • Có thể là người phát triển, thiết kế, quản trị Database 32 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • DDL: • Data Definition Language (DDL) là các câu lệnh tạo ra cấu trúc Database. • Tạo database, schema, tables, indexes,… 33 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • DDL Compiler: • Xử lý các câu lệnh DDL • Biên dịch DDL sang “machine- understandable codes” • Lưu trữ “metadata information” • DML Compiler: • Biên dịch câu lệnh DML 34 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Query Optimizer: • Quyết định cách thức tốt nhất để thực hiện yêu cầu của người dùng. 35 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Stored Data Manager: • Là “Database Control System” • Chuyển các yêu cầu nhận từ query optimizer sang “machine - understandable form”, Duy trì tính nhất quán và tính toàn vẹn, Kiểm soát các truy cập đồng thời, Giúp sao lưu và phục hồi dữ liệu. 36 KIẾN TRÚC HỆ QUẢN TRỊ CSDL • Data Files: • Là nơi lưu trữ dữ liệu thực sự. • Compiled DML: • Là các câu lệnh DML đã được xử lý và lưu trữ để sử dụng lại. • Data Dictionary: • Chứa tất cả các thông tin về Database. 37 MÔ HÌNH DỮ LIỆU • Mô hình dữ liệu là gì? • Các nhóm mô hình dữ liệu? 38 MÔ HÌNH DỮ LIỆU • Mô hình dữ liệu là gì? • Các nhóm mô hình dữ liệu? • Các mô hình dữ liệu hay gặp? 39 MÔ HÌNH DỮ LIỆU • Mô hình dữ liệu (Data models) là một tập hợp các công cụ khái niệm cho việc mô tả: • • • • dữ liệu, quan hệ dữ liệu ngữ nghĩa dữ liệu và các ràng buộc dữ liệu. • Chúng thường được chia ra làm 3 nhóm: • Các mô hình logic dựa trên đối tượng, • Các mô hình logic dựa trên bản ghi, • Các mô hình dữ liệu vật lý 40 MÔ HÌNH DỮ LIỆU • Mô hình thực thể liên kết (Entity Relationship Model ER): 41 MÔ HÌNH DỮ LIỆU • Mô hình hướng đối tượng (Object Oriented Model): 42 MÔ HÌNH DỮ LIỆU • Mô hình quan hệ (Relational Model): 43 MÔ HÌNH DỮ LIỆU • Mô hình mạng (Network Model) 44 MÔ HÌNH DỮ LIỆU • Mô hình phân cấp (Hierarchical Model): 45 MÔ HÌNH DỮ LIỆU (https://en.wikipedia.org/wiki/File:Database_models.jpg) 46 THỂ HIỆN VÀ LƯỢC ĐỒ • Thể hiện (Instances) ? • Lược đồ (Schemes)? 47 THỂ HIỆN VÀ LƯỢC ĐỒ • Cơ sở dữ liệu thay đổi theo thời gian. • Thông tin trong cơ sở dữ liệu tại một thời điểm cụ thể được gọi là một thể hiện của cơ sở dữ liệu. • Thiết kế tổng thể của CSDL được gọi là lược đồ CSDL (database chema) • Với ngôn ngữ lập trình: • Data type definition - scheme • Value of a variable - instance 48 ĐỐI TƯỢNG SỬ DỤNG CSDL • Ai là người sử dụng CSDL? 49 ĐỐI TƯỢNG SỬ DỤNG CSDL • Ai là người sử dụng CSDL? • Quản trị viên (Database Administrator - DBA) • Thiết kế viên (Database Designer) • Người dùng cuối (End User) 50 ĐỐI TƯỢNG SỬ DỤNG CSDL 51 ĐỐI TƯỢNG SỬ DỤNG CSDL • Quản trị viên (Database Administrator ) • Có trách nhiệm quản lý hệ CSDL • Cấp quyền truy cập CSDL • Điều phối và giám sát việc sử dụng CSDL • Thiết kế viên (Database Designer) • Chịu trách nhiệm về • Lựa chọn cấu trúc phù hợp để lưu trữ dữ liệu • Quyết định những dữ liệu nào cần được lưu trữ • Khảo sát, phân tích và đưa ra một thiết kế CSDL. 52 ĐỐI TƯỢNG SỬ DỤNG CSDL • Người dùng cuối (End User) • Người ít sử dụng • Ít khi truy cập CSDL, nhưng cần những thông tin khác nhau trong mỗi lần truy cập • Người quản lý • Người sử dụng thường xuyên • Thường xuyên truy vấn và cập nhật CSDL nhờ vào một số các chức năng đã được xây dựng sẳn • Nhân viên • Người sử dụng đặc biệt • Thông thạo về HQT CSDL, tự xây dựng những truy vấn phức tạp cho công việc • Kỹ sư, nhà khoa học, người phân tích,… 53 MÔ HÌNH THỰC THỂ LIÊN KẾT • Quy trình thiết kế CSDL? MÔ HÌNH THỰC THỂ LIÊN KẾT • Quy trình thiết kế CSDL? Hồ sơ, tài liệu khảo sát MHQH ER Mẫu biểu HQT CSDL MÔ HÌNH THỰC THỂ LIÊN KẾT • Quy trình thiết kế CSDL? Hồ sơ, tài liệu khảo sát MHQH Mẫu biểu HQT CSDL MÔ HÌNH THỰC THỂ LIÊN KẾT • Mô hình thực thể liên kết là gì (Entity-Relationship Model)? • Thực thể và tập thực thể (Entities and Entity Sets)? Ví dụ? • Thuộc tính (Attributes)? Ví dụ? • Quan hệ và tập quan hệ (Relationships & Relationship Sets)? Ví dụ? MÔ HÌNH THỰC THỂ LIÊN KẾT • Mô hình thực thể liên kết là gì (Entity-Relationship Model- ER model)? • Mô hình dữ liệu thực thể liên kết biểu diễn thế giới thực như là tập các đối tượng (thực thể) và quan hệ giữa các đối tượng. • Gồm các thành phần: • Entity, Entity Type, Entity Set • Attribute(s): • Relationship Type and Relationship Set MÔ HÌNH THỰC THỂ LIÊN KẾT • Thực thể và tập thực thể (Entities and Entity Sets)? • Thực thể là đối tượng, sự vật, hiện tượng trong thế thực có thể phân biệt đối tượng này với đối tượng khác • Một thực thể có thể: • Cụ thể: Con người, cuốn sách • Trừu tượng: Một kỳ nghỉ, một khái niệm,… MÔ HÌNH THỰC THỂ LIÊN KẾT • Thực thể và tập thực thể (Entities and Entity Sets)? • Tập thực thể (entity set) là tập các thực thể cùng kiểu. • Các tập thực thể không cần phải phân biệt • Nhân viên của ngân hàng, Khách hàng của ngân hàng có thể cùng là một người • Một thực thể được biểu diễn bởi tập các thuộc tính MÔ HÌNH THỰC THỂ LIÊN KẾT • Thực thể và tập thực thể (Entities and Entity Sets)? • Một thực thể được biểu diễn bởi tập các thuộc tính • Một thuộc tính là một hàm ánh xạ một thực thể tới một domain: • Mọi thực thể được mô tả bởi tập các cặp (Thuộc tính, Giá trị) MÔ HÌNH THỰC THỂ LIÊN KẾT • Các thuộc tính: • Có thể định nghĩa tập thực thể và quan hệ giữa chúng theo những các khác nhau • Tập thực thể employee với các thuộc tính employee-name and phone-number.. • Chúng ta có thể xem xét Phone như là thực thể của chính nó với các thuộc tính phone-number và location. • Chúng ta có hai tập thực thể và thiết lập quan hệ EmpPhn giữa các thực thể employees và phones của họ. Với định nghĩa mới các Employees có không hoặc một vài Phone • Nhưng không dễ để chuyển thuộc tính employee-name thành thực thể. MÔ HÌNH THỰC THỂ LIÊN KẾT • Keys? • Superkey • Key • Primary key MÔ HÌNH THỰC THỂ LIÊN KẾT • Keys? • Sự phân biệt giữa các thực thể với nhau được biểu diễn thông qua các thuộc tính • superkey là một tập một hoặc nhiều thuộc tính cho phép phân biệt duy nhất một thực thể trong một tập các thực thể. • Key: Là siêu khóa tối thiểu • Primary key là key do người DB designer chọn. MÔ HÌNH THỰC THỂ LIÊN KẾT • Quan hệ và tập quan hệ (Relationship & Relationship Set) • Quan hệ là mối quan hệ giữa một vài các thực thể. • Tập quan hệ là tập hợp các quan hệ cùng kiểu MÔ HÌNH THỰC THỂ LIÊN KẾT • Các ràng buộc ánh xạ? • Ánh xạ lực lượng (Mapping Cardinalities)? • Phụ thuộc tồn tại (Existence Dependencies)? MÔ HÌNH THỰC THỂ LIÊN KẾT • Các ràng buộc ánh xạ? • Ánh xạ lực lượng (Mapping Cardinalities)? • Phụ thuộc tồn tại (Existence Dependencies)? MÔ HÌNH THỰC THỂ LIÊN KẾT • Các ràng buộc ánh xạ? • Ánh xạ lực lượng (Mapping Cardinalities) • 1-1 • 1-n, n-1 • n-n • Phụ thuộc tồn tại (Existence Dependencies): Nếu sự tồn tại của thực thể X phụ thuộc vào sự tồn tại của thực thể Y, X được gọi là phụ thuộc vào sự tồn tại của Y MÔ HÌNH THỰC THỂ LIÊN KẾT • Các ràng buộc ánh xạ? • Ánh xạ lực lượng (Mapping Cardinalities) • 1-1 • 1-n, n-1 • n-n • Phụ thuộc tồn tại (Existence Dependencies): Nếu sự tồn tại của thực thể X phụ thuộc vào sự tồn tại của thực thể Y, X được gọi là phụ thuộc vào sự tồn tại của Y LƯỢC ĐỒ ER • Lược đồ ER (Entity-Relationship Diagram) • Mô hình ER mô tả cấu trúc của CSDL thông qua lược đồ ER. • Thành phần • Thực thể (Entity) • Thuộc tính (Attribute) • Quan hệ (Relationship) LƯỢC ĐỒ ER • Thực thể: Biểu diễn bởi hình chữ nhật • Thực thể (Entity): Là đối tượng hoặc thành phần dữ liệu, được biểu diễn bằng hình chữ nhật trong ER diagram. LƯỢC ĐỒ ER • Thực thể • Thực thể yếu (Weak Entity): Là thực thể mà sự tồn tại của nó phụ thuộc vào các thực thể khác. • Việc xác định các thuộc tính của nó dựa vào mối quan hệ với các thực thể khác. • Được ký hiệu bởi hình chữ nhật nét đôi. LƯỢC ĐỒ ER • Thuộc tính: Biểu diễn bằng hình Ovan • Thuộc tính khóa (Key attribute): • Là thuộc tính xác định thực thể trong tập các thực thể. • Tên thuộc tính được gạch chân. LƯỢC ĐỒ ER • Thuộc tính: Biểu diễn bằng hình Ovan • Thuộc tính tổ hợp (Composite attribute): • Là thuộc tính tổ hợp các thuộc tính khác. LƯỢC ĐỒ ER • Thuộc tính: Biểu diễn bằng hình Ovan • Thuộc tính đa trị (Multivalued attribute): • Là thuộc tính chứa nhiều giá trị. • Biểu diễn bởi ovan nét đôi. LƯỢC ĐỒ ER • Thuộc tính: Biểu diễn bằng hình Ovan • Thuộc tính dẫn xuất (Derived attribute): • Là thuộc tính chứa giá trị động và được dẫn xuất từ thuộc tính khác. • Biểu diễn bởi ovan nét đứt. LƯỢC ĐỒ ER • Thuộc tính: Biểu diễn bằng hình Ovan • Thuộc tính dẫn xuất (Derived attribute): • Là thuộc tính chứa giá trị động và được dẫn xuất từ thuộc tính khác. • Biểu diễn bởi ovan nét đứt. LƯỢC ĐỒ ER • Quan hệ: Biểu diễn bằng hình thoi • 1-1 (one to one): • 1-n (one to many) LƯỢC ĐỒ ER • Quan hệ: Biểu diễn bằng hình thoi • n-1 (many to one): • n-n (many to many) LƯỢC ĐỒ ER • Quan hệ: Biểu diễn bằng hình thoi • Chỉ số lực lượng: • Đánh số trên đường liên kết hoặc tập ký kiệu LƯỢC ĐỒ ER • Xây dựng ER Diagram • Xác định tập thực thể • Xác định mối quan hệ • Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ • Quyết định thuộc tính khóa • Quyết định (min, max) cho mối quan hệ LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • One to Many Student (SID Name) -------------1 A 2 B 3 C 4 D Course ( CID C_name ) ----------------c1 Z c2 Y c3 X Enroll (SID CID) ---------1 C1 2 C1 3 c3 4 C2 LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • One to Many Khóa chính của Enroll: SID hay CID? Student (SID Name) -------------1 A 2 B 3 C 4 D Course ( CID C_name ) ----------------c1 Z c2 Y c3 X Enroll (SID CID) ---------1 C1 2 C1 3 c3 4 C2 LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • One to Many • Lưu trữ trong CSDL thành 3 bảng: Student, Course và Enroll. • Tối ưu: Thành 2 bảng: Student_enroll và Course • Quan hệ 1-n ta có thể tối ưu thành hai bảng. Student_Enroll ( SID Name CID ) --------------------1 A c1 2 B c1 3 C c3 4 D c2 LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • Many to Many Student (SID Name) -------------1 A 2 B 3 C 4 D Course ( CID C_name ) ----------------c1 Z c2 Y c3 X Enroll ( SID CID ) ---------1 C1 1 C2 2 C1 2 C2 3 c3 4 C2 LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • Many to Many Thành 3 bảng: Student, Course và Enroll LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • One to One • Trường hợp 1: Toàn bộ các thực thể trong E1 tham gia, mỗi thực thể trong E1 có quan hệ với một và chỉ một thực thể thuộc E2, nhưng không phải tất cả các thực thể của E2 tham gia quan hệ. ==> Tối thiểu có thể là 1 bảng. LƯỢC ĐỒ ER • Tối thiểu hóa lược đồ ER • One to One • Trường hợp 2: Không phải tất cả các thực thể của cả E1 và E2 tham gia quan hệ. Hòa quan hệ R vào E1 hoặc E2. Tối thiểu phải có 2 bảng. THẢO LUẬN – CÂU HỎI 89 THẢO LUẬN- CÂU HỎI • Quản lý dữ liệu? • CSDL trong các bài toán thực tế • Xây dựng mô hình thực thể liên kết cho một bài toán. 90 BÀI TẬP • Phân nhóm • Phân công thành viên tìm hiểu bài toán thực tế • Viết báo cáo mô tả bài toán, xây dựng mô hình thực thể liên kết 91