Cơ SỞ Dữ LIỆU QUAN HỆ
NHANVIEN (Họ Tên, Năm sinh, Lương)
(Họ Tên, Năm sinh, Lương)
CONGTY
(Tên công ty, Địa điểm, Giám đốc) NV3
(Nguyễn Quốc Bào, 1985,
10000000)NV4 NV4 (Vũ Văn Tấn, 1970, 12000000) NV5 (Lương Trần Ánh, 1980, 10000000) CTY3
(CT CP chế tạo điện cơ, Hải Phòng, Hồng Bá Ân)
Chú ý: Một kiểu thực thể có thể được biểu diễn trong mơ hình thực thể liên kết như là một hình chữ nhật có chứa tên kiểu thực thể.
Biểu diễn một kiểu thực thể: <Tên kiểu thực thể>
Ví dụ 2.2: Biểu diễn thực thể nhân viên: NHÂN VIÊN
2.1.2. Thuộc tỉnh
Mỗi một thực thể sẽ bao gồm các thuộc tính (attribute). Thuộc tính
là đặc trưng dùng để mô tà đặc điểm cụ thể của thực thể theo cách xác định nào đó, được sử dụng để biểu diễn nó. Hay nói cách khác thuộc tính được hiểu là các yếu tố cần quản lý của thực thể. Ví dụ, một thực thể
NHANVIEN được mơ tả bằng các thuộc tính Họ Tên, Năm sinh, Lương
của nhân viên đó. Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc
tính của nó. Ví dụ, nhân viên NV1 có các giá trị cho các thuộc tính Họ
Tên, Năm sinh, Lương là “Lê Anh”, “1981”, “8000000”. Các giá trị thuộc tính mơ tả cho mỗi thực thể sẽ ưở thành một tập hợp các dữ liệu
mà sẽ được lưu trữ trong cơ sở dữ liệu. Trong mơ hỉnh thực thể liên kết có nhiều loại thuộc tính như thuộc tính đơn, thuộc tính phức hợp (căn cứ
vào loại thuộc tính). Hoặc nếu dựa vào loại giá trị của thuộc tính thì ta có thuộc tính đơn trị, thuộc tính đa trị, hoặc nếu dựa vào các yếu tố có được
lưu trữ trong cơ sở dữ liệu hay khơng ta có thuộc tính lưu trữ và thuộc tính suy diễn được. Cuối cùng, nếu dựa vào yếu tố xác định thực thể ta có
thuộc tính định danh và thuộc tính mơ tà.
về cơ bản ý nghĩa của các loại thuộc tính được hiểu như sau:
• Thuộc tính đơn là thuộc tính khơng thể phân chia ra được thành
các thành phần nhỏ hơn. Ví dụ, thuộc tính Lương của nhân viên là thuộc
tính đơn.
• Thuộc tính phức hợp là thuộc tính có thể phân chia ra được thành
các thành phần nhỏ hơn. Chúng có thể được biểu diễn bởi các thuộc tính
cơ bản hơn với các ý nghĩa độc lập. Ví dụ, thuộc tính Họ Tên của nhân viên là thuộc tính phức hợp và có thể phân chia ra thành các thuộc tính
nhỏ hơn như Họ, Họ đệm, và Tên.
Giá trị của một thuộc tính phức họp là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên nó. Việc phân chia một thuộc tính phức hợp thành các thuộc tính đơn tùy thuộc vào hồn cảnh cụ thể. Ví dụ như
thuộc tính Họ Tên của một số bài tốn quản lý có liên quan đến con người. Chúng ta có thể nên phân chia thành Họ, Họ đệm, và Tên ưong các bài toán quản lý sinh viên khi chúng ta có nhu cầu cần phải sắp xếp theo Tên của sinh viên. Nhưng trong một số bài toán quàn lý ví dụ như
Họ Tên nhân viên bán hàng, hay Họ Tên nhân viên kho với nhu cầu sắp xếp khơng cao thì chúng ta khơng cần phải phân chia thuộc tính Họ Tên nói trên.
• Thuộc tỉnh đơn trị là thuộc tính có giá trị duy nhất cho một thực
thể cụ thể. Ví dụ, mỗi nhân viên có một số chứng minh thư nhân dân
(CMTND) duy nhất nên CMTND là một thuộc tính đơn trị của thực thể
nhân viên.
Trong một số trường hợp, một thuộc tính có thể có một tập giá trị cho cùng một thực thể. Những thuộc tính như vậy gọi là thuộc tính đa trị.
Ví dụ, giả sử trong kiểu thực thể NHANVIEN, ta có thuộc tính Bằng Cấp để miêu tả bằng cấp có thể có của các nhân viên trong cơng ty. Như vậy, một nhân viên có thể khơng có bằng cấp nào, hoặc một nhân
viên khác có thể chỉ có một loại bằng cấp, hoặc một nhân viên khác nữa
có thể có nhiều bằng cấp khác nhau. Như vậy, các thực thể nhân viên khác nhau có thể có một số giá trị khác nhau cho thuộc tính Bằng cấp tại
mỗi thực thể nhân viên. Nói cách khác, thuộc tính Bằng cấp là một thuộc tính đa trị.
• Thuộc tính lưu trữ là thuộc tính mà giá trị của nó phải được lưu
trữ trong cơ sở dữ liệu. Ví dụ như các thuộc tính Họ tên, Năm sinh,
Lương của nhân viên là các thuộc tính lưu trữ.
• Thuộc tỉnh khơng lưu trữ là cảc thuộc tính mà giá trị của nó khơng
được lưu trữ trong cơ sở dữ liệu. Ví dụ như trong hố đơn bán hàng chúng ta có thuộc tính số thứ tự của các mặt hàng đã được liệt kê Ưong hố đơn là thuộc tính khơng lưu trữ.
Trong một số trường hợp, hai hay nhiều thuộc tính có giá trị liên
quan đến nhau. Ví dụ, thuộc tính Tuổi và thuộc tính Năm sinh của một nhân viên. Với một nhân viên cụ thể, ta có thể tính tuổi của nhân viên này bằng cách lấy năm hiện tại trừ đi năm sinh. Thuộc tính mà giá trị của nó có thể tính được thơng qua giá trị của các thuộc tính khác gọi là thuộc
tính suy diễn được. Ví dụ về một hố đơn bán hàng, nếu có các thuộc
tính số lượng, đơn giá cho các mặt hàng thì thuộc tính Thành tiền = số lượng * Đơn giá được gọi là thuộc tính suy diễn được.
• Thuộc tỉnh định danh là một hoặc tổ họp của một số thuộc tính
mà giá trị của nó xác định một cách duy nhất đối với mỗi thể hiện của
thực thể. Ví dụ, một thực thể NHANVỈENâưạc mơ tả bằng các thuộc tính
Mã nhân viên, Họ Tên, Năm sinh, Lương của nhân viên đó. Mỗi một
nhân viên đều có một mã nhân viên duy nhất, và các nhân viên khác nhau thì có mã nhân viên khác nhau, thuộc tính Mã nhãn viên dùng để
xác định đích danh từng nhân viên ưong cơng ty. Như vậy, thuộc tính Mã
• Thuộc tỉnh mơ tà là những thuộc tính mà giá trị của nó mô tà các
thông tin về các thể hiện cùa một thực thể. Đối với ví dụ về thực thể
NHANVIEN ở trên, các thuộc tính mơ tả về họ tên, năm sinh và lương
của mỗi nhân viên trong cơ sở dữ liệu. Khi đó các thuộc tính Họ Tên, Năm sinh và Lương của thực thể nhân viên này được gọi là các thuộc tính mơ tả.
Biểu diễn đồ hoạ của một thực thể: Để mơ tả chính xác một thực thể ta phải mô tả thực thể kèm theo các thuộc tính của thực thể đó.
Mơ tả có dạng như sau:
Tên thực thể
Danh sách các thuộc tính
Chú ý: Trong tập các thuộc tính của thực thể, thuộc tính định danh của thực thể sẽ được đặt ở vị trí đầu tiên và được gạch chân.
Ví dụ 2.3: Thực thể SINH VIÊN bao gồm Mã sinh viên, Mã lớp, Họ
tên, Ngày sinh, Quê quán, và Mã lớp hành chính. Trong đó Mã sinh viên là thuộc tính định danh. Khi đó thực thể SINH VIÊN sẽ được biểu diễn như sau: SINH VIÊN Mã sinh viên Họ tên Ngày sinh Q qn Mã lớp hành chính 2.1.3. Khóa
Trong tập các thuộc tính của tập thực thể bao giờ cũng có các thuộc
tính đặc biệt (thuộc tính định danh) mà các giá trị của nó là khác nhau đối với mỗi thực thể riêng biệt gọi là thuộc tính khố. Như vậy, thuộc tính khóa đó là thuộc tính được dùng để phân biệt giữa thực thể này với
thực thể khác trong một kiểu thực thể Hay nói cách khác, thuộc tính
khóa và các giá trị của nó có thể dùng để xác định từng thực thể là duy nhất trong tập thực thể đã cho.
Trong một thực thể có thể có một hoặc nhiều thuộc tính được sử dụng làm thuộc tính khố, thuộc tính nào được chọn dùng để phân biệt giữa các thực thể được gọi là khố chính.
Khóa chính (Primary Key) là một thuộc tính hoặc tập hợp các thuộc tính, xác định duy nhất một thực thể (một đối tượng cần quản lý). Khi định nghĩa khóa chính, hệ quản trị cơ sở dữ liệu sẽ cài đặt một ràng buộc khóa chính để đảm bảo không tồn tại hai thực thể khác nhau lại có cùng khóa chính. Khi thể hiện cơ sở dữ liệu trong bảng hai chiều, mỗi một cột sẽ thể hiện một thuộc tính, và mỗi một dịng sẽ thể hiện giá trị cụ thể một thực thể. Nếu khóa chính được tạo thành từ nhiều cột, mỗi một cột có thể có giá trị trùng nhau trong bảng, nhưng khi kết hợp những giá trị trong các
cột khác của khóa chính thì giá trị kết hợp đó phải là duy nhất trong bảng. Trong biểu diễn đồ hoạ của một kiểu thực thể, khóa chính được gạch chân, và khố của thực thể có thể bao gồm nhiều thuộc tính.
Ví dụ 2.4: Cho thực thể KHÁCH HÀNG bao gồm các thuộc tính
Mã khách hàng, Tên khách hàng, Địa chỉ, sổ điện thoại. Trong tập các thuộc tính này, Mã khách hàng của tập thực thể KHÁCH HÀNG là khóa
của tập thực thể đó bởi vì mỗi thực thể KHÁCH HÀNG chỉ có một mã khách hàng là duy nhất và các khách hàng khác nhau sẽ có mã khách hàng là khác nhau. Khi đó thực thể KHACHHÀNG được biểu diễn như sau:
KHÁCH HÀNG
Mã khách hàng
Tên khách hàng
Địa chỉ Số điện thoại
Lưu ý, khi nhiều thuộc tính kết hợp với nhau để tạo thành một khóa
ta sẽ có một bộ thuộc tính khóa phức hợp, và khóa phức hợp này phải là tối thiểu. Nghĩa là tất cả các thuộc tính thành phần phải có mặt ứong thuộc tính phức hợp để thỏa mãn bộ giá trị của mỗi thực thể duy nhất.
Ví dụ 2.5: Thực thể BẢN HANG bao gồm các thông tin: Mã khách
hàng, Mã hàng hoá, số lượng, Đơn giá, Thành tiền. Một khách hàng có thể
mua nhiều lần, và mỗi mặt hàng có thể bán cho nhiều người. Như vậy, giá trị Mã khách hàng có thể trùng nhau trong tập thực thể BÁN HÀNG, và Mã hàng hóa tương tự cũng như vậy. Tuy nhiên, mỗi bộ các giá trị Mã khách hàng và Mã hàng hóa sẽ là duy nhất để xác định mỗi lần khách mua một mặt
hàng nào đó. Vì vậy, các thuộc tính (Mã khách hàng, Mã hàng hố) sẽ được gọi là bộ khố của thực thể BÁN HANG.
Ta có biểu diễn về thực thể BÁN HÀNG như sau:
BÁN HÀNG Mã khách hàng Mã hàng hố Số lượng Đơn giá Thành tiền
Nhìn vào hình biểu diễn đồ họa của tập thực thể BÁN HÀNG nói
trên, các thuộc tính mơ tả sẽ là số lượng, Đơn giá, và thuộc tính Thành
tiền gọi là thuộc tính suy diễn được. Các thuộc tính này sẽ làm tăng sự hiểu biết của ta về thực thể và thơng thường nó được dùng cho các mục đích bên ngồi hệ thống.
Khố ngoại (Foreign Key) là một tập thuộc tính khơng phải là khố
chính của thực thể này nhưng nó lại là khố chính của một thực thể khác
mà hai thực thể này có liên quan đến nhau. Lúc này thực thể chứa khoá
Ví dụ 2.6: Cho 2 thực thể SINH VIÊN vả LỚP được biểu diễn như sau: SINH VIÊN Mã sinh viên Họ tên Ngày sinh Quê quán Mã LHC LỚP MãLHC TênLHC
Thực thể SINH VIÊN có thuộc tính Mã sinh viên là thuộc tính khố,
các thuộc tính Mã LHC, Họ tên, Ngày sinh, Quê quán là các thuộc tính
mơ tả. Trong các thuộc tính mơ tả đó có thuộc tính Mã LHC trong thực thể SINH VIÊN lại là thuộc tính khố chính trong thực thể LĨP (do mỗi
lớp hành chính có một mã duy nhất và các lớp khác nhau sẽ có một mã LHC khác nhau). Khi đó thuộc tính mã LHC được gọi là khố ngoại (hay cịn gọi là thuộc tính kết nối). Như vậy, thuộc tính khóa ngoại là thuộc tính mà trong thực thể này nó là thuộc tính mơ tả, nhưng trong thực thể khác nó lại là thuộc tính khố chính.
2.1.4. Liên kết (Mối quan hệ - relatìonships)
Liên kết hay cịn gọi là mối quan hệ là sự ghép nối giữa hai hay
nhiều thực thể phản ánh một thực tế quản lý hay nói cách khác nó dùng để chỉ mối quan hệ giữa hai hay nhiều thực thể khác nhau. Hai thực thể
được liên kết với nhau nếu chúng có chung ít nhất một thuộc tính nào đó,
thơng thường đó là khố ngoại. Ví dụ giữa các tập thực thể NHÂN VIÊN
và PHỊNG BAN, chúng có mối liên kết với nhau do một nhân viên sẽ làm việc tại một phòng ban cụ thể nên nhân viên sẽ thuộc một phịng ban
nào đó. Ngược lại, một phịng ban có nhiều nhân viên và có thể có một
nhân viên làm trưởng phịng. Như vậy, thuộc tính mã phịng ban gọi là
Cách biểu diễn liên kết
NHÂN VIÊN PHÒNG BAN
Kiểu liên kết là tập hợp các liên kết cùng loại, chúng được thể hiện
qua các loại liên kết sau:
- Liên kết 1-1 (liên kết một - một)'. Hai thực thể A và B có mối liên
kết 1-1 nếu một thực thể kiểu A chì tương ứng với nhiều nhất một thực thể kiểu B và ngược lại.
Ví dụ 2.7: Liên kết giữa thực thể SINH VlẼNvả THẺ SINH VIÊN
là liên kết 1-1. Mỗi sinh viên chỉ có một mã sinh viên duy nhất được ghi
trên thẻ sinh viên, mỗi mã chỉ dành cho một sinh viên. Nghĩa là, một mã
sinh viên sẽ xác định thông tin của sinh viên được ghi trên thẻ, và chúng
không được phép trùng nhau.
1 - 1 THẺ SINH VIÊN
SINH VIÊN
- Liên kết 1-n (liên kết một - nhiều)'. Hai thực thể A và B có mối
liên kết 1-n nếu một thực thể kiểu A tương ứng với 0, 1 hoặc nhiều thực thể kiểu B, và một thực thể kiểu B chỉ tương ứng với nhiều nhất một thực thể kiểu A.
Ví dụ 2.8: Mối liên kết giữa LỚP và SINH VIEN là kiểu liên kết 1-n.
Mỗi lớp học có nhiều sinh viên nhưng tại một thời điểm mỗi sinh viên chỉ thuộc vào một lớp.
LỚP 1 -n
SINH VIÊN
- Liên kết n-n (liên kết nhiều - nhiều)'. Hai thực thể A và B có mối
liên kết n-n nếu một thực thể kiểu A tương ứng với 0, 1 hoặc nhiều thực
thể kiểu B và ngược lại mỗi kiểu thực thể B tương ứng với 0,1 hoặc nhiều kiểu thực thể A.
Ví dụ 2.9: Liên kết giữa SINH VIÊN và HỌC PHẦN là kiểu liên
kết n-n. Trong suốt quá trình đào tạo mỗi sinh viên phải học nhiều học phần, và mỗi học phần có nhiều sinh viên theo học.
n - n
HỌC PHÀN SINH VIÊN
Ví dụ 2.10: Mơ tả bài tốn quản lý bán hàng như sau: Một công ty thưong mại Y chuyên kinh doanh các mặt hàng điện tử. Công ty nhập các mặt hàng từ các nhà cung cấp khác nhau thông qua các phiếu nhập và các thông tin quản lý bao gồm:
• Chi tiết về các mặt hàng gồm có: mã hàng (duy nhất), tên hàng và
các mô tả mặt hàng.
• Cơng ty cũng cần lưu trữ thơng tin về các nhà cung cấp trên như: tên, địa chỉ, điện thoại, fax. Mỗi nhà cung cấp có một mã duy nhất.
• Mỗi nhà cung cấp có thể cung cấp nhiều mặt hàng, nhưng mỗi
loại mặt hàng chỉ được nhập từ một nhà cung cấp.
• Thơng tin trên phiếu nhập bao gồm mã nhà cung cấp, thông tin về các mặt hàng được nhập như tên hàng, sổ lượng nhập, đơn giá nhập,
ngày nhập và tổng tiền nhập.
• Các mặt hàng được lưu giữ trong các kho. Mỗi kho có một diện
tích khác nhau và chỉ chứa một loại mặt hàng.
Cơng ty có nhiều cửa hàng đại lý để bán các mặt hàng, và hàng được cung cấp cho các cửa hàng thông qua các phiếu xuất. Thông tin trên
phiếu xuất bao gồm: mã số cửa hàng nhận hàng, thông tin về các mặt
hàng được xuất như tên hàng, số lượng, đơn giá, tổng tiền phải trả.
Hình 2.2: Ví dụ về mơ hình thực thể liên kết
2.1.5. Miền giá trị (domain)
Một miền giá trị D là một tập hợp các giá trị nguyên tử, có nghĩa là mỗi giá trị trong miền không thể phân chia trong phạm vi mơ hình