Tải bản đầy đủ (.pdf) (207 trang)

Bài giảng Cơ sở dữ liệu (Database) - Chương 3: Thiết kế cơ sở dữ liệu logic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.69 MB, 207 trang )

Chương 3. Thiết kế CSDL logic


Giới thiệu
Nhiều hệ quản trị cơ sở dữ liệu dùng mơ hình CSDL quan hệ:
Oracle, SQL server, …
§ Mơ hình này dựa trên cơ sở bản ghi
§ CSDL là tập hợp các bảng, mỗi bảng là tập các bản ghi
§ Khuôn dạng của các bản ghi là cố định (hiếm khi thay đổi)
§ Dữ liệu được mơ tả ở mức logic, không mô tả ở mức vật lý


Nội dung
1. Mơ hình dữ liệu quan hệ
2. Các ngơn ngữ thao tác trên quan hệ
3. Phụ thuộc hàm và khố
4. Dạng chuẩn và chuẩn hố
5. Chuyển đổi mơ hình ER sang mơ hình dữ liệu quan hệ


Nội dung
1. Mơ hình dữ liệu quan hệ
2. Các ngơn ngữ thao tác trên quan hệ
3. Phụ thuộc hàm và khố
4. Dạng chuẩn và chuẩn hố
5. Chuyển đổi mơ hình ER sang mơ hình dữ liệu quan hệ


Các khái niệm cơ bản
§Quan hệ (Relation)
§Thuộc tính (Attribute)


§Bộ (Tuple)
§Miền (Domain)
§Lược đồ quan hệ (Relation scheme)
§Các tính chất đặc trưng của một quan hệ


Quan hệ (relation)
Mỗi quan hệ là một bảng giá trị gồm các hàng và cột
§ Hàng: biểu diễn thơng tin của một thực thể hay một mối
quan hệ trong thế giới thực
§ Cột: thể hiện một thuộc tính của thực thể

Mỗi CSDL là một tập các quan hệ


Quan hệ (relation)
Ví dụ quan hệ
nhan_vien
MANV

HO_TEN

NGAY_SINH

GIOI_TINH

MADV

LUONG


CMND

1

Phạm Văn Bình

30/04/1975

Nam

P1

1 500 000

1417589987

2

Hồng Lê Chi

28/03/1961

Nam

P2

2 300 000

1417894532


3

Nguyễn Thu Cúc

12/06/1955

Nữ

P1

1 700 000

1563298211

4

Lê Trần Dũng

10/09/1978

Nam

P4

3 100 000

1518987219

8


Phan Ái Khanh

15/08/1970

Nữ

P3

3 100 000

1718897245

10

Thân Như Thơ

21/11/1974

Nam

P1

2 500 000

1718987215


Quan hệ (relation)
Ví dụ quan hệ
phong

MADV

TEN_PHONG

MATP

P1

Hành chính quản trị

10

P2

Nghiên cứu và phát
triển

2

P3

Giám đốc

8

P4

Kĩ thuật

4



Thuộc tính
Mỗi quan hệ có một số thuộc tính
§ Mỗi thuộc tính là tên của một cột
§ Mỗi thuộc tính có một Miền chỉ ra tập các giá trị của thuộc tính


Thuộc tính
Ví dụ, quan hệ phong có 3 thuộc tính: MADV, TEN_PHONG, MATP
Miền của MADV: tập các chuỗi có 2 kí tự, bắt đầu bằng chữ P
Miền của TEN_PHONG: tập các chuỗi có tối đa 30 kí tự
Miền của MATP: tập các số tự nhiên thuộc khoảng [0,1000]

Thuộc tính
phong
MADV

TEN_PHONG

MATP

P1

Hành chính quản trị

10

P2


Nghiên cứu và phát
triển

2

P3

Giám đốc

8

P4

Kĩ thuật

4


Bộ (tuple)
§

Mỗi dịng trong một quan hệ được gọi là một bộ
§

§

Kích thước cố định, là một danh sách có thứ tự của các giá
trị

Một biến bộ có thể tham chiếu đến bất kì một bộ

hợp lệ nào trong quan hệ


Bộ (tuple)
Biến bộ t tham chiếu đến bộ đầu tiên trong quan hệ phong
t[MADV]=P1
t[TEN_PHONG]=Hành chính quản trị
t[MATP]=10
phong

Bộ

MADV

TEN_PHONG

MATP

P1

Hành chính quản trị

10

P2

Nghiên cứu và phát
triển

2


P3

Giám đốc

8

P4

Kĩ thuật

4


Miền
§Miền của một thuộc tính là một tập hợp các giá trị
nguyên tố, mỗi giá trị trong miền không thể phân chia
trong phạm vi mơ hình quan hệ
§Để đặc tả một miền: cần chỉ ra tên miền, kiểu dữ liệu
và khn dạng dữ liệu
§Miền của một thuộc tính có thể chứa giá trị null
§ Giá trị của một số bộ tại một số thuộc tính nào đó
có thể chưa biết
§ Khơng có giá trị nào thích hợp cho một thuộc tính
của bộ nào đó


Miền
Trong quan hệ phong
§ Miền của MADV kí hiệu D1, là tập các chuỗi có 2 kí tự, bắt đầu bằng

chữ P
§ Miền của TEN_PHONG kí hiệu là D2, là tập các chuỗi có tối đa 30 kí tự
§ Miền của MATP kí hiệu là D3, là tập các số tự nhiên trong khoảng
[1,1000]

phong
MADV

TEN_PHONG

MATP

P1

Hành chính quản trị

10

P2

Nghiên cứu và phát
triển

2

P3

Giám đốc

8


P4

Kĩ thuật

4


Miền
Miền giá trị của các thuộc tính DIEN_THOAI, DIA_CHI
khơng phải là tập hợp các giá trị nguyên tố

´

phong
MAD
V

TEN_PHONG

MAT
P

DIEN_THO
AI

´

DIA_CHI
PHUON

G

QUAN

P1

Hành chính quản trị

10

0249567100

Vĩnh Tuy

Hoàng Mai

P2

Nghiên cứu và phát
triển

2

0247895562

Trung Liệt

Đống Đa

P3


Giám đốc

8

0247567128

Mai Dịch

Cầu Giấy

P4

Kĩ thuật

4

0247568528
,
0247568529

Mai Dịch

Cầu Giấy


Bộ và quan hệ
Một quan hệ trên một tập các thuộc tính là một tập con của
tích Descartes của một hay nhiều miền
Ví dụ,


phong
MADV

TEN_PHONG

MATP

D1 là miền của MADV P1
Hành chính quản trị
10
P2
Nghiên cứu và phát
2
D2 là miền của TEN_PHONG triển
P3
Giám đốc
8
D3 là miền của MA_TP P4
Kĩ thuật
4
PHONG Í D1´D2 ´D3
Mỗi bộ trong quan hệ PHONG chỉ ra mối quan hệ
giữa tập các giá trị


Bộ và quan hệ
Mỗi quan hệ là một tập các bộ

Mỗi bộ chỉ xuất hiện một lần

Nếu 2 bộ t1, t2 bằng nhau trên tất cả các thuộc tính
thì t1, t2 là cùng một bộ
Thứ tự của các bộ trong một quan hệ là không quan trọng


Lược đồ quan hệ (relation
schemas)
Quan hệ nào cũng có một lược đồ
Xác định kiểu thông tin cho các quan hệ
Nhiều quan hệ có thể có cùng một lược đồ

Một lược đồ quan hệ gồm:
Một tập các thuộc tính
Miền giá trị của mỗi thuộc tính

Cách viết
Tên của quan hệ được viết bằng chữ thường
Tên của lược đồ quan hệ được viết bằng chữ hoa

Cho quan hệ r và lược đồ quan hệ R:
Viết r(R) nghĩa là lược đồ của quan hệ r là R


Lược đồ quan hệ (relation
schemas)
Ví dụ
Lược đồ: PHONG(MADV, TEN_PHONG, MA_TP)
Quan hệ: phong

phong

MADV

TEN_PHONG

MATP

P1

Hành chính quản trị

10

P2

Nghiên cứu và phát
triển

2

P3

Giám đốc

8

P4

Kĩ thuật

4



Các tính chất đặc trưng của một
quan hệ
Một quan hệ có một tên phân biệt với tên các quan hệ khác
Mỗi ô trong bảng (quan hệ) chứa một giá trị ngun tố
Mỗi thuộc tính trong quan hệ có một tên phân biệt
Các giá trị của một thuộc tính thuộc cùng một miền
Thứ tự các thuộc tính là khơng quan trọng
Khơng có 2 bộ giống hệt nhau trong một quan hệ
Thứ tự của các bộ không quan trọng về mặt lý thuyết


Siêu khóa
Khóa được sử dụng để phân biệt các bộ
trong một quan hệ
Một siêu khóa là một tập các thuộc tính cho
phép xác định duy nhất một bộ trong mỗi
quan hệ
Thêm các thuộc tính vào một siêu khóa, ta
sẽ được một siêu khóa khác


Siêu khóa
Ví dụ, trong quan hệ nhan_vien
{MANV} là siêu khóa
{CMND} là siêu khóa
{MANV, HO_TEN} là siêu khóa
{CMND, HO_TEN, NGAY_SINH} là siêu khóa
{HO_TEN} khơng là siêu khóa

{HO_TEN, NGAY_SINH, GIOI_TINH, MADV_LUONG} khơng là siêu khóa

nhan_vien

MANV

HO_TEN

NGAY_SINH

GIOI_TINH

MADV

LUONG

CMND

1

Phạm Văn Bình

30/04/1975

Nam

P1

1 500 000


1417589987

2

Hồng Lê Chi

28/03/1961

Nam

P2

2 300 000

1417894532

3

Nguyễn Thu Cúc

12/06/1955

Nữ

P1

1 700 000

1563298211


4

Lê Trần Dũng

10/09/1978

Nam

P4

3 100 000

1518987219

8

Phan Ái Khanh

15/08/1970

Nữ

P3

3 100 000

1718897245

10


Thân Như Thơ

21/11/1974

Nam

P1

2 500 000

1718987215


Khóa (khóa dự tuyển)
Khóa (khóa dự tuyển) của một lược đồ quan hệ là siêu khóa của
lược đồ này sao cho mọi tập con thực sự của nó khơng là siêu khóa
Khóa là thuộc tính của một lược đồ quan hệ chứ khơng phải cho từng
bộ riêng
Nghĩa là nó áp dụng cho tất cả các bộ trong các quan hệ của lược đồ


Khóa (khóa dự tuyển)
Ví dụ, trong quan hệ nhan_vien
{MANV} là khóa (khóa dự tuyển)
{CMND} là khóa (khóa dự tuyển)
{MANV, HO_TEN} khơng là khóa
{MANV, HO_TEN, NGAY_SINH} là khơng là khóa

nhan_vien
MANV


HO_TEN

NGAY_SINH

GIOI_TINH

MADV

LUONG

CMND

1

Phạm Văn Bình

30/04/1975

Nam

P1

1 500 000

1417589987

2

Hồng Lê Chi


28/03/1961

Nam

P2

2 300 000

1417894532

3

Nguyễn Thu Cúc

12/06/1955

Nữ

P1

1 700 000

1563298211

4

Lê Trần Dũng

10/09/1978


Nam

P4

3 100 000

1518987219

8

Phan Ái Khanh

15/08/1970

Nữ

P3

3 100 000

1718897245

10

Thân Như Thơ

21/11/1974

Nam


P1

2 500 000

1718987215


Khóa chính (primary key)
Một trong số các khóa dự tuyển được chọn làm khóa chính để xác
định tính duy nhất của các bộ trong một quan hệ
Việc chọn khóa dự tuyển nào làm khóa chính là tùy thuộc vào ngữ
nghĩa dữ liệu mà lược đồ mơ tả và mục đích của người sử dụng CSDL


×