XÂY DỰNG KỊCH BẢN CHUYỂN ĐỔI CƠ SỞ DỮ LIỆU

Một phần của tài liệu 28071_1712202001939518LV (Trang 58 - 62)

6. Bố cục luận văn

3.2.XÂY DỰNG KỊCH BẢN CHUYỂN ĐỔI CƠ SỞ DỮ LIỆU

Với giả thiết hệ thống quản lý đa dạng thực vật đã tồn tại và đang hoạt động với CSDL bao gồm số lƣợng lớn bản ghi, luận văn cần thực hiện chuyển đổi CSDL từ mô hình dữ liệu quan hệ truyền thống sang CSDL quan hệ đƣợc thiết kế theo AM.

CSDL chứa dữ liệu nguyên thuỷ đƣợc thiết kế theo mô hình ER có tên ER. CSDL đƣợc thiết kế theo AM có tên AM. Từ ban đầu, các định danh của các tập thực thể đƣợc chọn kiểu dữ liệu int. Vì thế, có thể sử dụng các bộ giá trị khoá làm các bộ giá trị cho anchor trong AM. Rõ ràng, với mỗi loại thuộc tính cũng nhƣ mối quan hệ theo AM ta có cách chuyển đổi dữ liệu từ CSDL cũ theo ER sang CSDL mới theo AM khác nhau.

Nhƣ vậy, cần xây dựng kịch bản (script) để tự động hóa tối đa quá trình chuyển đổi CSDL này. Sự tƣơng ứng giữa các bảng theo ER và AM (xem phụ lục C).

Có thể tham khảo kịch bản đầy đủ ở phụ lục D. Bảng 3.15 đƣa ra một số trƣờng hợp tiêu biểu.

Bảng 3.15 Một số trường hợp tiêu biểu cho kịch bản chuyển đổi CSDL

Tập thực

thể Thuộc tính

Script

Giới

Anchor INSERTMaGioi FROMINTO AM.dbo.GI_Gioi ER.dbo.Gioi (GI_ID) SELECT

DanhPhapKhoaHoc

INSERTINTO

AM.dbo.GI_GKH_Gioi_DanhPhapKhoaHoc(GI_GKH_ GI_ID,GI_GKH_Gioi_DanhPhapKhoaHoc)

SELECT MaGioi,DanhPhapKhoaHoc FROM

ER.dbo.Gioi

TenGoiTiengViet

INSERTINTO

AM.dbo.GI_GTV_Gioi_TenGoiTiengViet(GI_GTV_GI_ ID,GI_GTV_Gioi_TenGoiTiengViet)

SELECT MaGioi,TenGoiTiengViet FROM ER.dbo.Gioi WHERE TenGoiTiengViet IS NOT NULL

Gioi_DacDiem

INSERTINTO

AM.dbo.GI_GDI_Gioi_DacDiem(GI_GDI_GI_ID,GI_G DI_Gioi_DacDiem,GI_GDI_ChangedAt)

SELECT MaGioi,DacDiem,GETDATE() FROM

ER.dbo.Gioi WHERE DacDiem IS NOT NULL

Ngành

Mối quan hệ 1-n giữa giới và ngành

INSERTINTO

AM.dbo.GI_Gom_NG_Thuoc(GI_ID_gom,NG_ID_thuo c) SELECT MaGioi,MaNganh FROM ER.dbo.Nganh

Loài

PhanHang INSERTINTO

A_PHA_HAN_ID,LA_PHA_ChangedAt)

SELECT

ER.dbo.MaLoai,AM.dbo.HAN_Hang.HAN_ID,GETDA TE()FROM ER.dbo.Loai

INNERJOIN HAN_Hang ON ER.dbo.Loai.PhanHang = AM.dbo.HAN_Hang.HAN_Hang Phân bố theo khu bảo tồn Mối quan hệ n-n giữa phân bố và khu

bảo tồn

INSERTINTO

AM.dbo.TT_tai_BT_gom(BT_ID_gom,TT_ID_tai,TT_ta i_BT_gom_ChangedAt)

SELECT MaPhanBo,MaKhuBaoTon,GETDATE()

FROM ER.dbo.PhanBoTheoKhuBaoTon

Phƣờng

Mối quan hệ 1-n giữa quận huyện và

phƣờng xã

INSERTINTO

AM.dbo.QH_co_PX_thuoc(QH_ID_co,PX_ID_thuoc)

SELECT MaQuanHuyen,MaPhuongXa FROM

ER.dbo.PhuongXa Mối quan hệ n-n

giữa phân bố và phƣờng xã

INSERTINTO

AM.dbo.PX_gom_TT_thuoc(PX_ID_gom,TT_ID_thuoc, PX_gom_TT_thuoc_ChangedAt)

SELECT MaPhuongXa,MaPhanBo,GETDATE()FROM

ER.dbo.PhanBoTheoKhuHanhChinh Tài khoản … Knot GioiTinh INSERTINTO AM.dbo.GTI_CacGioiTinh(GTI_CacGioiTinh)

SELECTDISTINCT GioiTinh FROM ER.dbo.TaiKhoan

GioiTinh

INSERTINTO AM.dbo.TK_GTI_TaiKhoan_GioiTinh (TK_GTI_TK_ID,TK_GTI_GTI_ID) SELECT

ER.dbo.MaTaiKhoan,AM.dbo.GTI_CacGioiTinh.GTI_I D FROM ER.dbo.TaiKhoan

INNERJOIN AM.dbo.GTI_CacGioiTinh ON

ER.dbo.TaiKhoan.GioiTinh =

Một phần của tài liệu 28071_1712202001939518LV (Trang 58 - 62)