TÌM HIỂU VỀ ORACLẸ

Một phần của tài liệu tìm hiểu oracle i và bài toán quản lý sách (Trang 60)

PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 2.1. MÉT SÈ ĐỊNH NGHĨA VÀ KHÁI NIỆM

Tìm hiểu Oracle9i và bài tốn quản lý sách

Thực thể là một khái niệm mơ tả một líp các đối tượng có đặc trưng chung mà một tổ chức hệ thống quan tâm. Thực thể phải tồn tại, cần được lùa chọn có lợi cho quản lý và phải phân biệt được.

2.1.2. Thuộc tính (attribute)

Thuộc tính là đặc trưng chung, vốn có của líp đối tượng mà ta quan tâm. Nó là một giá trị dùng để mơ tả một đặc trưng nào đó của thực thể.

2.1.3. Phơ thuộc hàm

Cho mét quan hệ R bất kỳ và hai nhóm thuộc tính A và B khác nhau của nó. Nhóm thuộc tính B được gọi là phụ thuộc hàm vao nhóm thuộc tính A nếu đối với mỗi dịng của quan hệ R các giá trị của A xác định duy nhất các giá trị của B. Sự phụ thuộc hàm của A vào B còn gọi là A xác định B và được ký hiệu bằng mòi tên từ A sang B: AB

2.1.4. Khoá dự tuyển (candidate key)

Khoá dự tuyển của mét quan hệ là một nhóm thuộc tính mà các giá trị của nó xác định duy nhất mỗi dịng trong mét quan hệ. Khố dự tuyển cần thoả mãn các tính chất sau:

+ Xác định duy nhất: Giá trị của khố xác định duy nhất mỗi dịng. Tính chất này cho thấy: các thuộc tính khơng phải là khố phụ thuộc hàm vào khố.

+ Khơng dư thừa: Khi xóa đi bất kỳ thuộc tính nào của khố đều phá huỷ tính xác định duy nhất của khố.

2.1.5. Khố chính (primary key)

Khố chính là một khố dự tuyển được chọn làm khoá của quan hệ.

2.1.6. Khoá ngoại lai (foreign key)

Khoá ngoại lai của mét quan hệ là một nhóm thuộc tính trong quan hệ đó và là khố chính trong mét quan hệ khác.

2.1.7. Chuẩn hoá (Normalization)

Chuẩn hoá là một quá trình chuyển một cấu trúc dữ liệu phức tạp thành các cấu trúc dữ liệu tốt và đơn giản hơn.

Dạng khơng chuẩn hố

D¹ng chuÈn thø nhÊt (1NF)

D¹ng chuÈn thø hai (2NF)

D¹ng chuÈn thø ba (3NF)

Mét quan hệ đạt chuẩn 1 nếu nó khơng chứa các thuộc tính lặp.

b. Chuẩn 2 (Second normal form: 2NF):

Phơ thuộc hồn tồn vào khố. Một quan hệ đạt chuẩn 2 NF nếu thoả mãn 2 điều kiện sau:

+ Nã đã ở dạng chuẩn 1

+ Khơng tồn tại thuộc tính ngồi khố mà phụ thuộc vào một phần của khố.

c. Chuẩn 3 (Third normal form: 3NF):

Phơ thuộc trực tiếp vào khoá. Mét quan hệ đạt chuẩn 3 nếu: + Nã đã ở dạng chuẩn 2.

+ Khơng tồn tại thuộc tính ngồi khố mà phụ thuộc bắc cầu vào khố (qua một thuộc tính gọi là thuộc tính cầu, cũng là thuộc tính ngồi khố).

1NF 2NF

3NF BCNF

Tìm hiểu Oracle9i và bài tốn quản lý sách

Phân líp các dạng chuẩn có thể được thể hiện qua hình sau:

2.1.8. Quan hệ:

Khi chóng ta muốn thiết kế một cơ sở dữ liệu quan hệ thường đòi hỏi phải chọn các lược đồ quan hệ phù hợp. Việc chọn các tập lược đồ này có thể tốt hơn hoặc xấu hơn tập lược đồ khác dùa trên một số tiêu chuẩn nào đó, do vậy cần thiết phải nghiên cứu tính chất cơ bản cịng nh các thuật tốn để có thể nhận được các tập lược đồ phù hợp. Trọng tâm của việc thiết kế các lược đồ cơ sở dữ liệu là các phụ thuộc hàm dữ liệu, tức là các mối dàng buộc có thể có giữa các giá trị hiện hữu của các thuộc tính.

Khái niệm quan hệ (R) ở mục này được dùng để nhóm họp hai hay nhiều thực thể với nhau nhằm biểu hiện một mối liên quan tồn tại trong thế giới thực giữa các thực thể nàỵ Kích thước của một quan hệ là số thực thực thể cấu thành nên những quan hệ có kích thước lớn hơn bạ

Trong mơ hình dữ liệu thường các quan hệ được biểu diễn bằng hình trịn hoặc hình Elipsẹ

Trong sơ đồ quan hệ thực thể trên thì E là các thực thể, còn R là các mối quan hệ giữa E và Ẹ

ạ Phân loại quan hệ

Xét R là một tập quan hệ và E là 1 thực thể cấu thành của R, mỗi cặp (E,R) được biểu thị trên sơ đồ khái niệm dữ liệu bằng một đoạn thẳng. Với thực thể E ta có thể xác định được:

- X là số tối thiểu các thể hiện tương ứng với E và R có thể có trong thực tế. Giá trị của X nh vậy chỉ có thể bằng 0 hoặc 1

- Y là số tối đa các thể hiện tương ứng với E và R có thể có trong thực tế. Giá trị của Y nh vậy chỉ có thể bằng 1 hoặc một số nguyên N>1

- Cặp số (X,Y) được định nghĩa là bản số của đoạn thẳng (E,R) và có thể lấy các giá trị nh sau: (0,1), (0,N) hay (1,N) với N>1.

Đối với các quan hệ nhị nguyên R liên kết giữa hai thực thể A và B ta phân thành 3 loại quan hệ cơ bản sau:

* Quan hệ 1-1 (mét – mét)

Mỗi thể hiện của thực thể A được kết hợp với 0 hay 1 thể hiện của B và ngược lạị

X,Y có thể lấy giá trị 0 và 1

A B quan hÖ (x,y) E R E (y,1) A R A E E (x,1)

Tìm hiểu Oracle9i và bài tốn quản lý sách

* Quan hệ 1-N (mét – nhiều)

Mỗi thể hiện của thực thể A được kết hợp với 0,1 hay nhiều thể hiện của B, và mỗi thể hiện của B được kết hợp với một thể hiện duy nhất của Ạ Đây là loại quan hệ thông dụng và đơn giản nhất.

X có thể lấy giá trị 0 hoặc 1 * Quan hệ N-P (nhiều-nhiều)

Mỗi thể hiện của một thực thể A được kết hợp với 0,1 hay nhiều thể hiện của B và ngược lại, mỗi thể hiện của B được kết hợp với 0,1 hay nhiều thể hiện của Ạ

X,Y có thể lấy giá trị 0,1

2.2. CHẮT LỌC VÀ MÃ HỐ THƠNG TIN CẦN DÙNG

Để tạo cơ sở dữ liệu, trước hết ta phải xác định những thơng tin gì cần theo dõi, cần sử dụng. Sau đó, ta thiết kế CSDL, tạo bảng chứa các trường định nghĩa kiễu dữ liệu sẽ có. Sau khi tạo cấu trúc CSDL, CSDL có thể chứa dữ liệu dưới dạng mẩu tin. Ta không thể đưa dữ liệu vào mà khơng có bảng hay định nghĩa trường vì dữ liệu sẽ khơng có chỗ để chứạ Do đó thiết kế CSDL cực kỳ quan trọng, nhất là rất khó thay đổi thiết kế một khi ta đã tạo ra nó, mặt khác để thiết kế được một CSDL tèn Ýt khơng gian nhớ nhất thì việc đầu tiên chúng ta phải làm là chắt lọc và mã hố thơng tin, xác định các kiểu dữ liệu phù hợp với các

(1,1) A R A E E (x,n) (y,n) A R A E E (x,n)

thực thể được tạo ra, đây là một công đoạn hết sức quan trọng và cần thiết trong q trình phân tích và thiết kế CSDL nhằm tránh hiện tượng dư thừa và chồng chất dữ liệụ

Đứng trước yêu cầu đề ra của chương trình là một hệ thống “Quản lý cửa hàng sách”. Qua quá trình khảo sát và tìm hiểu thực tế tơi đã liệt kê, chính xác hố, chắt lọc và mã hố chúng theo bảng dưới đây:

Thực thể – Thuộc tính Kiểu/ cỡ Chắt lọc/ Mã hoá

Mã sách varchar2(50) MASACH

Tên sách varchar2(100) TENSACH

Mã loại sách varchar2(50) MALS

Tên loại sách varchar2(50) TENLS

Chuyên ngành varchar2(50) CHUYENNGANH

Sè trang number(10) SOTRANG

Số lượng number(10) SOLUONG

Lần tái bản number(10) LANTB

Năm xuất bản number(4) NAMXB

Giá number(19,4) GIA

Mã tác giả number(10) MATG

Tên tác giả varchar2(50) TENTG

Email tác giả varchar2(50) EMAILTG

Website tác giả varchar2(50) WEBSITETG

Tiểu sử varchar2(200) TIEUSU

Mã nhà xuất bản number(10) MANXB

Tên nhà xuất bản varchar2(50) TENNXB địa chỉ nhà xuất bản varchar2(50) DCNXB điện thoại nhà xuất bản number(10) DTNXB

Email nhà xuất bản varchar2(50) EMAILNXB Website nhà xuất bản varchar2(50) WEBSITENXB

Số hoá đơn number(10) SOHD

Số lượng đặt hàng number(10) SLDAT

Ngày đặt hàng date NGAYDAT

Tổng tiền number(19,4) TONGTIEN

Triết khấu number(19,4) TRIETKHAU

Mã khách hàng number(10) MAKH

Tên khách hàng varchar2(50) TENKH

Giới tính varchar2(3) GIOITINH

địa chỉ khách hàng varchar2(50) DCKH điện thoại khách hàng number(10) DTKH

Tìm hiểu Oracle9i và bài toán quản lý sách

Email khách hàng varchar2(50) EMAILKH

Mã trạng thái number(10) MATT

Tên trạng thái varchar2(50) TENTT

Từ bảng chắt lọc và mã hố các thuộc tính ở trên, tơi đã quyết định đưa chúng về hai thực thể chính sau:

+ Thông tin sách  TT_SACH

+ Thơng tin hố đơn bán sách  HOADON

TT_SACH(Masach, Tensach, Mals, Tenls, Chuyennganh, Sotrang, Soluong, Lantb, Namxb, Gia, Matg, Tentg, Emailtg, Websitetg, Tieusu, Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb)

HOADON(Sohd, Masach, Gia, Sldat, Ngaydat, Tongtien, Trietkhau, Makh, Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh, Matt, Tentt)

2.2.1. Chuẩn hoá cơ sở dữ liệu

ạ Xác định khố chính

+ Xét thực thể TT_SACH ta thấy:

(Masach)  (Tensach, Mals, Tenls, Chuyennganh, Sotrang, Soluong, Lantb, Namxb, Gia, Matg, Tentg, Emailtg, Websitetg, Tieusu, Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb)

(Mals)  (Tenls, Chuyennganh)

(Matg)  (Matg, Tentg, Emailtg, Websitetg, Tieusu)

(Manxb)  (Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb) Do đó khố chính của thực thể TT_SACH là:

Sau khi xác định được khố chính ta gạch dưới chân chúng khi đó thực thể TT_SACH trở thành:

TT_SACH(Masach, Tensach, Mals, Tenls, Chuyennganh, Sotrang, Soluong, Lantb, Namxb, Gia, Matg, Tentg, Emailtg, Websitetg, Tieusu, Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb).

+ Xét thực thể hoá đơn ta thấy:

(Sohd,Masach)  (Gia, Sldat, Tongtien, Trietkhau)

(Sohd)  ( Ngaydat, Makh, Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh, Matt, Tentt)

(Makh)  (Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh) (Matt)  (Tentt)

Do đó khố chính của thực thể HOADON là: (Sohd, Masach,Makh,Matt)

Sau khi xác định được khố chính ta gạch dưới chân chúng khi đó thực thể HOADON trở thành:

HOADON(Sohd, Masach, Gia, Sldat, Ngaydat, Tongtien, Trietkhau, Makh, Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh, Matt, Tentt)

b. Xét dạng chuẩn 1NF

+ Xét thực thể TT_SACH ta nhận thấy rằng:

Quan hệ này khơng chứa thuộc tính lặp. Do đó quan hệ TT_SACH đã đạt chuẩn 1NF.

+ Xét thực thể HOADON ta nhận thấy rằng:

Quan hệ này chưa đạt chuẩn 1NF vì nó chứa thuộc tính lặp đó là: (Masach, Gia, Sldat, Tongtien, Trietkhau)

Do đó ta phải tách chúng thành các quan hệ sau: + Hoá đơn chi tiết (HOADONCT)

+ Hoá đơn (HOADON)

Tìm hiểu Oracle9i và bài tốn quản lý sách

HOADON(Sohd, Ngaydat, Makh, Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh, Matt, Tentt)

* Nh vậy chuẩn 1NF có 3 thực thể đó là: 1. TT_SACH 2. HOADONCT 3. HOADON c. Xét dạng chuẩn 2NF + Xét thực thể TT_SACH ta nhận thấy rằng:

Quan hệ này chưa đạt chuẩn 2NF vì có sự phụ thuộc bộ phận giữa thuộc tính ngồi khố vào một phần của khố:

(Masach)  (Tensach, Mals, Sotrang, Soluong, Lantb, Namxb, Gia, Matg, Manxb)

(Mals)  (Tenls, Chuyennganh)

(Matg)  (Matg, Tentg, Emailtg, Websitetg, Tieusu)

(Manxb)  (Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb)

Vậy để quan hệ TT_SACH đạt chuẩn 2NF ta phải phân rã quan hệ TT_SACH thành các quan hệ sau:

SACH(Masach,Tensach, Mals, Sotrang, Soluong, Lantb, Namxb, Gia, Matg, Manxb)

LOAISACH(Mals,Tenls, Chuyennganh)

TACGIĂMatg, Matg, Tentg, Emailtg, Websitetg, Tieusu)

NXB(Manxb, Manxb, Tennxb, Dcnxb, Dtnxb, Websitenxb, Emailnxb) + Xét thực thể HOADONCT ta nhận thấy rằng:

Quan hệ này đã đạt chuẩn 2NF vì khơng tồn tại sự phụ thuộc bộ phận giữa thuộc tính ngồi khố vào một phần của khố.

HOADONCT(Sohd, Masach, Sldat, Tongtien, Trietkhau) + Xét thực thể HOADON ta nhận thấy rằng:

Quan hệ này chưa đạt chuẩn 2NF vì có sự phụ thuộc bộ phận giữa thuộc tính ngồi khố vào một phần của khố:

(Sohd)  ( Ngaydat, Makh, Matt)

(Makh)  (Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh) (Matt)  (Tentt)

Vậy để quan hệ HOADON đạt chuẩn 2NF ta phải phân rã quan hệ HOADON thành các quan hệ sau:

HOADON(Sohd, Ngaydat, Makh, Matt)

KHACHHANG(Makh,Tenkh, Gioitinh, Dckh, Dtkh, Tinh_tp, Emailkh) TRANGTHAI(Matt,Tentt) * Nh vậy chuẩn 2NF có 8 thực thể đó là: 1. SACH 2. LOAISACH 3. TACGIA 4. NXB 5. HOADONCT 6. HOADON 7. KHACHHANG 8. TRANGTHAI d. Xét dạng chuẩn 3NF

+ Xét thực thể SACH: ta thấy quan hệ SACH đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ SACH đã đạt chuẩn 3NF.

+ Xét thực thể LOAISACH: ta thấy quan hệ LOAISACH đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó

Tìm hiểu Oracle9i và bài tốn quản lý sách

khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ LOAISACH đã đạt chuẩn 3NF.

+ Xét thực thể TACGIA: ta thấy quan hệ TACGIA đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ TACGIA đã đạt chuẩn 3NF.

+ Xét thực thể NXB: ta thấy quan hệ NXB đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ NXB đã đạt chuẩn 3NF.

+ Xét thực thể HOADONCT: ta thấy quan hệ HOADONCT đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ HOADONCT đã đạt chuẩn 3NF.

+ Xét thực thể HOADON: ta thấy quan hệ HOADON đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ HOADON đã đạt chuẩn 3NF.

+ Xét thực thể KHACKHANG: ta thấy quan hệ KHACKHANG đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ KHACKHANG đã đạt chuẩn 3NF.

+ Xét thực thể TRANGTHAI: ta thấy quan hệ TRANGTHAI đã đạt chuẩn 3NF, bởi vì các thuộc tính ngồi khố chỉ phụ thuộc vào khố chính, do đó khơng có sự phụ thuộc bắc cầu giữa các thuộc tính ngồi khố vào các thuộc tính khố, nên quan hệ TRANGTHAI đã đạt chuẩn 3NF.

* Nh vậy ở dạng chuẩn 3NF ta có tất cả là 8 thực thể: 1. SACH

NXB MaNXB TenNXB DC DT EMAIL WEBSIT E 3. TACGIA 4. NXB 5. HOADONCT 6. HOADON 7. KHACHHANG 8. TRANGTHAI Kết luận:

Các quan hệ đạt chuẩn 3NF trên đã khắc phục được sự dư thừa dữ liệu, đã đạt được mục tiêu phân rã, thành các quan hệ con đơn giản hơn, mà bất kỳ một bài toán thực tế nào về cơ sở dữ liệu cũng yêu cầụ

2.2.2. Thiết kế dữ liệu logic

Qua q trình phân tích và khảo sát hệ thống trên, chúng ta có một số thực thể sau:

* thực thể NXB

TACGIA MaTG TenTG TieuSu EMAI L WEBSIT E LOAISACH MaLS TenLS CHUYENNGAN H SACH MaSach TenSach SoTrang SoLuong NamXB LanTB MaNXB

Tìm hiểu Oracle9i và bài tốn quản lý sách

* Thực thể TACGIA

HOADONCT SoHD MaSac h GIA SLDAT TongTien TrietKha u HOADON SoHD NgayD H MaKH MaTT * Thưc thể HOADONCT * Thực thể HOADON

TenTT KHACHHANG MaKH TenKH GioiTin h EMAIL DC DT Tinh_TP TRANGTHAI MaTT

Tìm hiểu Oracle9i và bài tốn quản lý sách

* Thực thể TRANGTHAI

Thực thể KHACHHANG

Trong cơ sở dữ liệu bảng là thành phần chính. Do đó bảng là đối tượng lưu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác, bảng là đối tượng căn bản nhất trong bất kỳ loại CSDL nào, chúng được coi nh mét miền dữ liệụ

Mỗi bảng được định nghĩa nhiều trường, mỗi trường ứng với một loại dữ liệụ Dữ liệu nhập vào có thể chấp nhận được hoặc từ chối tuỳ thuộc vào nguyên tắc ràng buộc dữ liệu hoặc loại dữ liệu tương thích do hệ thống hay người dùng định nghĩạ

Các bước tạo CSDL ta dùng công cụ Oracle9i Desinger

Bằng cách đăng nhập với user admin của kho dữ liệu Repository

Cách tạo kho dữ liệu đã trình bày ở phần (Cài đặt oracle designer9i

Repository)

Sau đây là cách login vào repository

Tìm hiểu Oracle9i và bài tốn quản lý sách

Nhấn next để tiếp tục quá trình tạo bảng NXB. Và sử dụng các thơng số sau:

Các cột và các đặc tính của bảng nhà xuất bản (NXB)

Tên cột Kiểu dữ liệu Null? Khố chính Khố ngoại

MANXB number(10) No Yes

TENNXB varchar2(50) Yes

DC varchar2(50) Yes

DT number(10) Yes

EMAIL varchar2(50) Yes

WEBSITE varchar2(50) Yes

Các cột và các đặc tính của bảng loại sách (LOAISACH)

Tên cột Kiểu dữ liệu Null? Khố chính Khố ngoại

MALS varchar2(3) No Yes

CHUYENNGAN H

No

Các cột và các đặc tính của bảng tác giả (TACGIA)

Tên cột Kiểu dữ liệu Null? Khố chính Khố ngoại

Một phần của tài liệu tìm hiểu oracle i và bài toán quản lý sách (Trang 60)

Tải bản đầy đủ (DOC)

(89 trang)
w