Uploaded by hoangvkts

Bai1New

advertisement
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
Download