Hiển thị kết quả từ 1 đến 3 / 3
  1. #1
    Tham gia
    17-11-2011
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    thắc mắc về cách tạo mối quan hệ giữa các bảng trong 1 CSDL!

    Em mới học các hệ quản trị CSDL, nên còn rất khó hiểu nhiều về CSDL, các anh chị có thể giúp em về vấn đề này 1 chút được chứ:
    Các vấn đề thắc mắc của em là:
    - Trong 1 CSDL có thể có bảng nào tách rời và không quan hệ gì với các bảng còn lại hay không,
    - Trong 1 CSDL các bảng thường có các ràng buộc (khóa chính, khóa ngoại) và các mối quan hệ...Vậy làm sao để suy luận ra các ràng buộc và các mối quan hệ đó...Anh chị có thể cho em ví dụ về điều này được không ạ(nếu được hinh ảnh minh họa thì quá tốt)
    VD:
    với một CSDL như sau:
    SVIEN(#MASV, TEN, NAM, KHOA)
    MHOC(#MAMH, TENMH, TINCHI, KHOA)
    DKIEN(#MAMH, #MAMH_TRUOC)
    K_HOC(#MAKH, MAMH, HOCKY, NAM, GV)
    KQUA(#MASV,#MAKH,DIEM)

    thì ta có thể xác định mối quan hệ của các bảng trên như thế nào, đâu là khóa chính, đâu là khóa phụ, và các mối quan hệ được nối lại với nhau như thế nào.
    Nếu được em mong anh chị có thể post hình minh họa lên cho em, và giúp em tạo CSDL này với ngôn ngữ SQL. Cảm ơn anh chị...
    Quote Quote

  2. #2
    Tham gia
    22-10-2011
    Bài viết
    211
    Like
    2
    Thanked 30 Times in 19 Posts
    Bạn phân bảng.. không ổn, theo mình bạn cần phân tích các trường cùng bảng theo cách phân chia như sau:
    - Các trường cùng một đối tượng và ứng với 1 giá trị trường này thì có 1 giá trị trường kia thì chung một bảng.
    VD: Một SV thì có các thông tin cá nhân (MA,TEN, N_SINHS, D_CHI) vậy nó đứng chung bảng ( tạm gọi bảng SinhVien)
    Một SV có thể học 1 khóa, thì KHOA chung bảng, còn không thì riêng bảng.
    - Các trường cùng một đối tượng nhưng ứng với 1 giá trị của trường này có nhiều giá trị trường kia hoặc kéo theo nhiều giá trị của trường kia thì riêng bảng.
    VD: một HS có nhiều môn vậy HS và MON không chung bảng, nhưng có sự liên kết thông qua KHOA, vậy trường KHOA có mặt ở hai bảng ( Bảng SinhVien- ở trên và bảng KHOA-MON

    - cứ như vậy phân tích và nhặt các trường vào các bảng.
    - Tạo mối quan hệ thông qua các trường trùng nhau.
    - thêm một nguyên tắc nữa ( theo kinh nghiệm) Những trường bất biến ( hoặc ít biết) ví dụ Họ, tên, NS, ... thì đưa vào 1 bảng. Các trường thay đổi ( Khoa học, môn học, điểm... đưa ra 1 bảng)
    -

  3. #3
    Tham gia
    27-12-2011
    Bài viết
    46
    Like
    11
    Thanked 6 Times in 6 Posts
    Dựa trên dữ liệu bạn đưa ở trên thì thấy chỗ nào có dấu # và là khóa chính khi chỉ có mình nó. Còn nếu nó 2 dấu # trở lên thì dấu đầu tiên là khóa chính, dấu còn lại là khóa ngoại. Cũng có thể khóa chính là sự kết hợp của 2 dấu # đầu tiên. Thấy chỗ nào có ghi MÃ thì đó là khóa.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •