Chương 2: Bảng (Table) I. Các khái niệm về CSDL Access CSDL Access là một đối tượng bao gồm tập hợp các.
Download ReportTranscript Chương 2: Bảng (Table) I. Các khái niệm về CSDL Access CSDL Access là một đối tượng bao gồm tập hợp các.
Chương 2: Bảng (Table) I. Các khái niệm về CSDL Access CSDL Access là một đối tượng bao gồm tập hợp các bảng dữ liệu, các kết nối giữa các bảng được thiết kế một cách phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý dữ liệu nào đó. I. Các khái niệm về CSDL Access Ví dụ 1: CSDL Quản lý học sinh bao gồm tập hợp các bảng dữ liệu: HOCSINH, LOP, KHOI, MONHOC, DIEM được kết nối với nhau một cách phù hợp phục vụ lưu trữ dữ liệu cho ứng dụng quản lý học sinh một trường học. Toàn bộ cấu trúc CSDL quản lý học sinh trên Access được mô tả như sau: I. Các khái niệm về CSDL Access I. Các khái niệm về CSDL Access Ví dụ 2: CSDL Quản lý bán hàng bao gồm tập hợp các bảng dữ liệu: HANG, KHACH, HOADON, HANGBAN được kết nối với nhau một cách phù hợp, phục vụ ứng dụng quản lý việc bán hàng tại một cửa hang. Sơ đồ cấu trúc CSDL này như sau: I. Các khái niệm về CSDL Access Các bước xây dựng CSDL Bước 1: Xác định mục tiêu khai thác CSDL của chúng ta Bước 2: Xác định các bảng dữ liệu cần thiết. Mỗi đối tượng thông tin sẽ hình thành một bảng trong CSDL của chúng ta. Bước 3: Xác định các trường trong mỗi bảng. Các bước xây dựng CSDL Bước 4: Xác định các mối quan hệ giữa các bảng. Bước 5: Tinh chế, hiệu chỉnh lại thiết kế. II. Bảng dữ liệu (Table) Bảng dữ liệu (Tables) là một phần quan trọng nhất của CSDL. Là nơi lưu trữ những dữ liệu tác nghiệp cho ứng dụng Một CSDL có thể có rất nhiều bảng II. Bảng dữ liệu (Table) Các bảng phải được thiết kế sao cho có thể lưu trữ được đầy đủ dữ liệu cần thiết Đảm bảo giảm tối đa tình trạng gây dư thừa dữ liệu II. Bảng dữ liệu (Table) Các thành phần của một bảng Tên bảng Các trường dữ liệu (Field) Các thuộc tính cần thiết cho mỗi trường dữ liệu (Properties) Các bản ghi (record) II. Bảng dữ liệu (Table) Xem bảng ở dạng datasheets (xem, sữa, nhập dữ liệu) Mỗi cột là một trường Mỗi dòng là một bảng ghi (record) II. Bảng dữ liệu (Table) Xem bảng ở dạng design view, xây dựng cấu trúc bảng. Kiểu dữ liệu của trường Tên trường Danh sách các thuộc tính của trường II. Bảng dữ liệu (Table) Tên bảng: Được đặt sau khi tạo xong cấu trúc của bảng Cũng có thể sữa tên bảng như sữa tên tập tin hay thư mục. II. Bảng dữ liệu (Table) – Trường (Field) Mỗi cột dữ liệu của bảng sẽ tương ứng với một trường dữ liệu. Mỗi trường dữ liệu sẽ có một tên gọi và tập hợp các thuộc tính miêu tả trường dữ liệu đó ví dụ như: kiểu dữ liệu, trường khoá, độ lớn, định dạng, .. Mỗi trường dữ liệu phải được định kiểu dữ liệu. II. Bảng dữ liệu (Table) – Bảng ghi (record) Mỗi dòng dữ liệu của bảng được gọi một bản ghi. Mỗi bảng có một con trỏ bản ghi. Con trỏ bản ghi đang nằm ở bản ghi nào, người dùng có thể sửa được dữ liệu bản ghi đó. Đặc biệt, bản ghi trắng cuối cùng của mỗi bảng được gọi EOF. III. Các cách tạo bảng Trong cửa sổ Database, chọn tab Table Bấm nút new, cửa sổ new table xuất hiện • • Datasheet View: Trên màn hình sẽ xuất hiện một bảng trống với các trường (tiêu đề cột) lần lượt Field1, field2 Design View: Trên màn hình xuất hiện cửa sổ thiết kế bảng, người sử dụng tự thiết kế bảng. III. Các cách tạo bảng Table Wizard: Thiết kế bảng với sự trợ giúp của MS Access Import table: Nhập các bảng và các đối tượng từ các tập tin khác vào CSDL hiện thời. Link table: Tạo bảng bằng cách nối vào CSDL hiện thời các bảng của CSDL khác. chọn OK. III.1. Tạo bảng bằng design view Sau khi chọn design view trong cửa sổ new table và chọn OK Cửa sổ design table xuất hiện. III.1. Tạo bảng bằng design view Field Name: Tên trường cần đặt (thông tin cần quản lý) Data Type: Kiểu dữ liệu của trường Desciption: Mô tả trường, phần này chỉ mang ý nghĩa làm rõ thông tin quản lý, có thể bỏ qua trong khi thiết kế bảng. Field properties: Các thuộc tính của trường Xác định khoá chính của bảng (nếu có) Xác định thuộc tính của bảng, Lưu bảng dữ liệu III.1.1. Đặt tên trường Tên trường ở đây không nhất thiết phải có độ dài hạn chế và phải sát nhau, mà ta có thể đặt tên trường tùy ý nhưng không vượt quá 64 ký tự kể cả ký tự trắng. III.1.1. Quy định kiểu dữ liệu Trong Access, trường dữ liệu có thể nhận các kiểu dữ liệu sau. stt Kiểu dữ liệu 1 Number Độ lớn Lưu trữ.. Tuỳ thuộc kiểu cụ thể Số: số thực, số nguyên theo nhiều kiểu 2 Autonumber 4 bytes Số nguyên tự động được đánh số. 3 4 Text Yes/No tuỳ thuộc độ dài chuổi Chuổi ký tự 1 bytes Kiểu logic III.1.1. Quy định kiểu dữ liệu stt Kiểu dữ liệu Độ lớn Lưu trữ.. 5 Date/Time 8 bytes Lưu trữ ngày, giờ 6 Currentcy 7 Memo tuỳ thuộc giá trị 8 Hyperlink tuỳ thuộc dũ liệu Lưu trữ các siêu liên 9 OLE tuỳ thuộc dữ liệu Âm thanh, hình ảnh, đồ hoạ, … (Objects) Lưu trữ dữ liệu kèm ký hiệu tiền tệ kết (hyperlink ) III.1.2 Quy định thuộc tính (Properties) cho trường Đặt thuộc tính là một phần không kém quan trọng, nó quyết định đến dữ liệu thực sự lưu giữa trong bảng, kiểm tra độ chính xác dữ liệu khi nhập vào, định dạng dữ liệu nhập vào ... Mỗi một kiểu dữ liệu sẽ có các thuộc tính và các đặc trưng và khác nhau III.1.2.1 Field Size Quy định kích thước của trường và tùy thuộc vào từng kiểu dữ liệu Kiểu Text: Chúng ta quy định độ dài tối đa của chuỗi. III.1.2.1 Field Size Kiểu Number: Có thể chọn một trong các loại sau: Byte: 0..255 Integer: -32768..32767 Long Integer: -3147483648.. 3147483647 Single:-3,4x1038..3,4x1038 (Tối đa 7 số lẻ) Double: -1.797x10308 ..1.797x10308 (Tối đa 15 số lẻ) III.1.2.2 Decimal place Quy định số chữ số thập phân ( Chỉ sử dụng trong kiểu Single và Double) Đối với kiểu Currency mặc định decimal places là 2 III.1.2.3 Format Quy định dạng hiển thị dữ liệu, tùy thuộc vào từng kiểu dữ liệu. III.1.2.4 Input Mask Thuột tính input mask quy định dữ liệu nhập vào phải tuân theo một quy tắc nhất định III.1.2.4 Các ký tự định dạng trong input mask Ký tự Tác dụng 0 Bắt buộc nhập ký tự số 9 Không bắt buộc nhập, ký tự số # Không bắt buộc nhập, số 0-9, khoảng trắng, dấu + và Bắt buộc nhập, ký tự chữ L ? Không bắt buộc nhập, ký tự chữ hoặc khoảng trắng III.1.2.4 Các ký tự định dạng trong input mask Ký tự Tác dụng A Bắt buộc nhập, ký tự chữ hoặc số a Không bắt buộc nhập, ký tự chữ hoặc số & Bắt buộc nhập, ký tự bất kỳ C Không bắt buộc nhập ký tự bất kỳ < Các ký tự bên phải được đổi thành chữ thường III.1.2.4 Các ký tự định dạng trong input mask Ký tự Tác dụng > Các ký tự bên phải được đổi thành chữ hoa ! Dữ liệu được ghi từ phải sang trái \<Ký tự> Ký tự theo sau \ sẽ được đưa thẳng vào III.1.2.4 Các ký tự định dạng trong input mask Ví dụ: Input mask Dữ liệu nhập vào (000)000-0000 (054)828-8282 (000)AAA-A (123)124-E III.1.2.5 Caption Quy định nhãn là một chuỗi ký tự sẽ xuất hiện tại dòng tiêu đề của bảng. Chuỗi ký tự này cũng xuất hiện tại nhãn các của các điều khiển trong các biểu mẫu hoặc báo cáo. III.1.2.6 Default Value Quy định giá trị mặc định cho trường trừ Auto number và OEL Object III.1.2.7 Validation rule và Validation Text Quy định quy tắc hợp lệ dữ liệu (Validation rule) để giới hạn giá trị nhập vào cho một trường. Khi giới hạn này bị vi phạm sẽ có câu thông báo ở Validation text. III.1.2.8 Required Có thể quy định thuộc tính này để bặt buộc hay không bắt buộc nhập dữ liệu cho trường. Yes: bắt buộc nhập No: Không bắt buộc III.1.2.9 AllowZeroLenght Thuộc tính này cho phép quy định một trường có kiểu Text hay memo có thể hoặc không có thể có chuỗi có độ dài bằng 0 Yes: Chấp nhận chuỗi rỗng. No: Không chấp nhận chuỗi rỗng. III.1.2.10 Index Quy định thuộc tính này để tạo chỉ mục trên một trường. Nếu chúng ta lập chỉ mục thì việc tìm kiếm dữ liệu nhanh hơn và tiện hơn. Yes( Dupplicate OK): Tạo chỉ mục, trùng lặp. Yes(No Dupplicate ): Tạo chỉ mục, không trùng lặp. No : Không tạo chỉ mục III.1.2.11 New Value Thuộc tính này chỉ đối với dữ liệu kiểu auto number, quy định cách thức mà trường tự động điền số khi thêm bản ghi mới vào. Increase: Tăng dần Random: Lấy số ngẫu nhiên III.1.3 Khóa chính Primary Key Phân biệt các record trong cùng một bảng. Trong trường khóa chính không có giá trị trùng nhau hay null. Khóa chính có thể được đặt từ một hoặc tập hợp từ nhiều trường. Tạo mối liên kết với các bảng khác để truy xuất thông tin liên quan. III.1.3 Khóa chính Primary Key Dữ liệu được xắp xếp theo trường khóa chính. Tạo mối liên kết với các bảng khác để truy xuất thông tin liên quan. III.1.3.1 Cách đặt khóa chính Mở bảng ở chế độ Design View Nhắp chọn trường cần đặt Thực hiện lệnh Edit - Primary Key hoặc nhắp chọn nút trên thanh công cụ của mục này . III.1.3.1 Cách đặt khóa chính chú ý: Không phải mọi trường đều có thể làm khóa chính, mà chỉ có các trường có các kiểu dữ liệu không phải là Memo và OLE Object., Hyper Link. III.1.4 Khóa phụ( Foreign key) Trường có cấu trúc giống một trường là khóa chính trong bảng khác. Dùng để tạo mối liên kết với bảng khác để truy xuất thông tin cần thiết IV. Lưu bảng Sau khi thiết kế xong, ta tiến hành lưu bảng vào CSDL, có thể thực hiện một trong hai thao tác sau: Thực hiện lệnh File - Save. Nhắp chọn nút trên thanh công cụ của mục này (Table Design) V. HIỆU CHỈNH BẢNG Di chuyển trường: Các thao tác để di chuyển thứ tự các trường Chèn trường : Các thao tác lần lượt như sau Đưa con trỏ ra đầu trường đến khi con trỏ chuột chuyển thành thì nhắp chọn. Đưa con trỏ ra đầu trường vừa chọn, nhấn và kéo đếnvị trí mới. Chọn trường hiện thời là trường sẽ nằm sau trường được chen vào Thực hiện lệnh Insert/ Row Xóa trường: Các thao tác lần lượt như sau Chọn trường cần xóa Thực hiện lệnh Edit - Delete Rows VI. xem thông tin và bổ sung record Navigation buttons VI.1 Xem thông tin ở chế độ datasheet Muốn xem thông tin trong một bảng chúng ta phải chuyển bảng sang một chế độ hiển thị khác gọi là Datasheet. Trong chế độ hiển thị này, mỗi record được thể hiện trên một hàng ngang, hàng đầu tiên là các tên trường. Sau đây là các cách để chuyển sang chế độ hiển thị Datasheet: Trong của sổ Database của CSDL đang mở, nhấp chọn tab Table. Trong mục này chọn bảng cần hiển thị rồi chọn nút Open, bảng sẽ được mở để bổ sung và chỉnh sửa dữ liệu. Ta có thể chuyển sang chế độ Datasheet ngay khi đang ở trong chế độ Design, bằng cách nhắp chọn nút thì bảng sẽ chuyển sang chế độ Datasheet, để quay trở về chế độ Design, ta nhắp chọn lại nút . Hoặc chọn lệnh View - /Design View. VI.2 thêm mới, hiệu chỉnh record Sau khi hoàn thành công việc thiết kế cấu trúc bảng, ta tiến hành nhập dữ liệu, tức là bổ sung các record, cho bảng. Hiển thị bảng ở chế độ hiển thị Datasheet, mỗi hàng đại diện cho một record. Ở đây có các ký hiệu chúng ta cần biết công dụng của chúng Record hiện thời Record đang nhập dữ liệu Record mới VI.2 thêm mới, hiệu chỉnh record Bổ sung record mới cho CSDL Đang đứng tại một record nào đó (không phải là record mới), chọn nút trên thanh công cụ. Hoặc thực hiện lệnh Record - Go To - New. Di chuyển giữa các record Ta có thể di chuyển qua lại giữ các record bằng cách dùng công cụ navigation buttons. VI.3 Xoá record Chọn các bản ghi cần xóa, sau đó thực hiện lệnh Edit - Delete (hoặc nhấn phím DELETE) . VII. Thiết lập mối quan hệ giữa các bảng (relationships). VII.1 Các loại quan hệ trong cơ sở dữ liệu ACCESS VII.1.2 Quan hệ một -một (1-1) Trong quan hệ một -một, mỗi bản ghi trong bảng A có tương ứng với duy nhất một bản ghi trong bảng B và ngược lại mỗi bản ghi trong bảng B có tương ứng duy nhất một bản ghi trong bảng A. VII.1.2 Quan hệ một -một (1-1) Ví Dụ: Mối quan hệ giữa LyLich và SinhVien: Là mối quan hệ 1-1. Mỗi lý lịch thuộc về duy nhất một sinh viên, mỗi sinh viên có duy nhất một lý lịch. VII.1.3 Quan hệ một nhiều( 1-) Là mối quan hệ phổ biến nhất trong CSDL, trong quan hệ một nhiều : Một bản ghi trong bảng A có thể có nhiều bản ghi tương ứng trong bảng B, nhưng ngược lại một bản ghi trong bảng B có duy nhất một bản ghi tương ứng trong bảng A. VII.1.3 Quan hệ một nhiều( 1-) Ví Dụ: Mối quan hệ giữa Lop và SinhVien: Là mối quan hệ 1- . Mỗi lớp có thể có nhiều sinh viên theo học, mỗi sinh viên chỉ theo học duy nhất một lớp. VII.1.4 Quan hệ nhiều nhiều( -) Trong quan hệ nhiều nhiều, mỗi bản ghi trong bảng A có thể nhiều bản ghi tương ứng trong bảng B và ngược lại mỗi bản ghi trong bảng B có thể có nhiều bản ghi tương ứng trong bảng A. VII.1.4 Quan hệ nhiều nhiều( -) Ví dụ: Mối quan hệ giữa Sinhvien và MonHoc: Là mối quan hệ Nhiều – Nhiều. Mỗi sinh viên học nhiều môn học và một môn học được học bởi nhiều sinh viên VII.1.4 Quan hệ nhiều nhiều( -) Trong một CSDL không được phép tồn tại mối quan hệ Nhiều – Nhiều. Nếu có mối quan hệ ( -), Phải tách thành hai mối quan hệ Một – Nhiều, bằng cách thêm bảng thứ 3. Bảng mới này có khoá là tổ hợp khóa của hai bảng trước đó. VII.1.4 Quan hệ nhiều nhiều( -) Ví dụ: Mối quan hệ giữa Sinhvien và MonHoc Được xử lý như sau: Thêm bảng SinhVien_MonHoc. Mối quan hệ ( -) trước đó trở thành: Mối quan hệ (1 -) giữa SinhViên với SinhViên_MonHoc và mối quan hệ (1 -) giữa MonHoc và SinhVien_MonHoc. VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). Tại cửa sổ Database, thực hiện lệnh Tools/Relationship hoặc bấm nút trên thanh toolbars Cửa sổ Show Table hiện ra. Trong cửa sổ Show Table chọn Table và chọn các bảng cần thiết lập quan hệ, sau đó chọn Add và Close. VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). Kéo trường liên kết của bảng quan hệ vào trường của bảng được quan hệ (Table related). VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). Bật chức năng Enforce Referential Integrity ( Nếu muốn quan hệ này bị ràng buộc tham chiếu toàn vẹn), chọn mối quan hệ (one-many) hoặc (oneone). Chọn nút Create. VII.2 Thiết lập mối quan hệ giữa các bảng (relationships). Chú ý Quan hệ có tính tham chiếu toàn vẹn sẽ đảm bảo các vấn đề sau: Khi nhập dữ liệu cho trường tham gia quan hệ ở bên nhiều thì phải tồn tại bên một. Không thể xoá một record của bảng bên một nếu trong quan hệ đã tồn tại những record bên nhiều có quan hệ với record bên một đó. Trường hợp vi phạm các quy tắc trên thì sẽ nhận được thông báo lỗi. Thiết lập thuộc tính tham chiếu toàn vẹn trong quan hệ VII.3 Cascade update related fields, khi dữ liệu trên khoá chính của bảng bên một thay đổi thì Access sẽ tự động cập nhật sự thay đổi đó vào các trường tương ứng (có quan hệ) trên các bảng bên Nhiều, hay nói cách khác, dữ liệu ở bảng bên nhiều cũng thay đổi theo. Thiết lập thuộc tính tham chiếu toàn vẹn trong quan hệ VII.3 Cascade Delete related records, khi dữ liệu trên bảng bên một bị xoá thì dữ liệu trên bảng bên nhiều cũng sẽ bị xoá. Hiệu chỉnh, xóa một mối quan hệ. VII.4 Mở cửa sổ RelationShips Nhấn chuột phải lên mối quan hệ. Chọn edit Relationship để hiệu chỉnh Chọn Delete để xóa