Phương pháp ước lượng các truy vấn lồng trong cơ sở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối

7 913 4
Phương pháp ước lượng các truy vấn lồng trong cơ sở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối

Đang tải... (xem toàn văn)

Thông tin tài liệu

Một trong lĩnh vực quan trọng được đề cập trong CSDL hướng đối tượng là tối ưu hoá truy vấn hướng đối tượng. Khi thực thi một truy vấn, có thể có nhiều phương án mà hệ thống CSDL cho phép xử lý và sản sinh câu trả lời.

Abstract: The basic various of the relational databases for data types, the presentation of complex objetcs, class hierarchy, methods in object-oriented databases which query processing and the optimizing query become more difficult. However, one of the methods query processing for the relational databases can be inheritance and advanced for the optimizing query in object-oriented databases. In this paper, we propose a method for estimating the object- oriented query that extended from the algorithms of Ullman [7] and Han [3] by connection hypergraphs for the nested queries. I. GIỚI THIỆU Một trong lĩnh vực quan trọng được đề cập trong CSDL hướng đối tượng là tối ưu hoá truy vấn hướng đối tượng. Khi thực thi một truy vấn, thể nhiều phương án mà hệ thống CSDL cho phép xử lý và sản sinh câu trả lời. Các phương án kết quả cuối cùng là tương đương về kết quả tính toán nhưng khác nhau trong chi phí thực hiện, tức là tổng thời gian cần để thực hiện một truy vấn. Lựa chọn phương án nào để tổng thời gian thực hiện là nhỏ nhất? Như vậy, vấn đề tối ưu hoá truy vấn là cấp thiết trong các hệ thống quản trị CSDL. Trong những năm gần đây vấn đề tối ưu hoá truy vấn hướng đối tượng được nhiều nhà nghiên cứu quan tâm, các kỹ thuật tối ưu hoá truy vấn đượ c phát triển tính kế thừa từ mô hình CSDL quan hệ như tối ưu hoá trên các biểu thức đại số [4] và các giải thuật chuyển đổi truy vấn hướng đối tượng sang truy vấn quan hệ để áp dụng các kỹ thuật tối ưu hoá truy vấn đã trên mô hình quan hệ [8]. Tuy nhiên, vấn đề tối ưu hoá truy vấn trên CSDL hướng đối tượng những điểm khác biệt so với các phương pháp tối ư u hoá truy vấn trên CSDL quan hệ – điều này xuất phát từ ngữ nghĩa của mô hình dữ liệu hướng đối tượngcác ngôn ngữ truy vấn trên mô hình này, vì vậy cần phải nghiên cứu các phương pháp, đề xuất các kỹ thuật tối ưu hoá truy vấn phù hợp cho các truy vấn hướng đối tượng. Tối ưu hóa các truy vấn lồng trong CSDL hướng đối tượng đã được Cluet, S. [2] đề xuất theo cách tiếp cận 2 giai đ oạn trong ngữ cảnh hướng đối tượng. Giai đoạn đầu tiên được gọi là tối ưu hóa trên sở phụ thuộc: biến đổi các truy vấn ở mức ngôn ngữ nhằm thực hiện các biểu thức con chung và các truy vấn con độc lập một cách hiệu quả hơn. Các truy vấn đã biến đổi được biên dịch thành các biểu thức đại số lồng nhau. Sự định giá các vòng lặ p lồng nhau thể không hiệu quả. Vì vậy, ở giai đoạn 2 là giai đoạn “làm phẳng” các biểu thức đại số lồng nhau giúp cho phép định giá hiệu quả hơn. Trong bài báo này, chúng tôi đề xuất cách tiếp cận bằng phương pháp biểu diễn các truy vấn lồng bằng siêu đồ thị kết nối, sau đó thực hiện tiến trình ước lượng các siêu cạnh trên siêu đồ thị kết nối củ a truy vấn lồng. Xuất phát từ ý tưởng biểu diễn và tối ưu hóa các truy vấn (ngôn ngữ Phương pháp ước lượng các truy vấn lồng trongsở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối The Method for Estimating the Nested Queries in Object-Oriented Databases by Connection Hypergraphs Lê Mạnh Thạnh, Đoàn Văn Ban, Hoàng Bảo Hùng QUEL/SQL) bằng siêu đồ thị của J.D Ullman [7] và Han [3], chúng tôi mở rộng phương pháp biểu diễn này trong ngôn ngữ truy vấn OQL trên CSDL hướng đối tượng. II. BIỂU DIỄN TRUY VẤN OQL BẰNG SIÊU ĐỒ THỊ KẾT NỐI Các truy vấn được viết bằng ngôn ngữ truy vấn OQL (ODMG-93) [5, 6] rất phong phú và đa dạng, trong bài báo này chúng tôi chỉ biểu diễn cho một tập con của các truy vấn viết bằng ngôn ngữ OQL: các truy vấn lồng. Ví dụ 1: Để thống nhất trong trình bày một số ví dụ, chúng ta sử dụng CSDL nhân sự minh hoạ như sau [4, 9]: class NHAN_SU type tuple (maso: integer, hoten: string, pho: string[20], tpho: string[10], matinh: integer, ngaysinh: tuple (ngay: integer, thang: integer, nam:integer)) class SINH_VIEN inherits NHAN_SU type tuple (gvhd: string, dtb: float, hocbong: float, tenkhoa: KHOA) class GIANG_VIEN inherits NHAN_SU type tuple ( bomon: string[20], mabomon: integer, chucvu: string[20], tenkhoa: KHOA, luong: integer, con: set(NHAN_SU)) class KHOA type tuple (makhoa: integer, tenkh: string, diadiem: string, ngansach: float, GIANG_VIEN: set(GIANG_VIEN)) 1. Siêu đồ thị kết nối Chúng ta nhắc lại định nghĩa của một siêu đồ thị. Một siêu đồ thị H = (V, E) chứa một tập các đỉnh V và tập các siêu cạnh E. Trong đó, tập đỉnh V tương ứng với tập các mục dữ liệu (thuộc tính), và mỗi siêu cạnh e ∈ E tương ứng với một tập các mục dữ liệu liên quan với nhau (lớp, điều kiện). Siêu đồ thị là sự mở rộng của một đồ thị mà mỗi siêu cạnh của nó được kết nối từ tập các đỉnh. Trong bài báo này, chúng ta giới thiệu khái niệm siêu đồ thị kết nối biểu diễn cho câu truy vấn lồng trong CSDL hướng đối tượng, là một sự mở rộng phương pháp biểu diễn siêu đồ thị đối với các thành phần của câu truy vấn lồng. Trước hết, chúng ta xét biểu thức điều kiện trong mệnh đề Where, các biểu thức điều kiện được chia ra bốn dạng sau: A = a, (1) A = B (2) A θ B, θ ∈ { < , ≤ , ≠ , > , ≥}, (3) A θ B, θ ∈ {⊂ , ⊆ , ≠ , ⊃ , ⊇}. (4) trong đó, A, B là thuộc tính của các lớp và a là hằng. Truy vấn OQL đơn chỉ một khối Select . From . Where (SFW); Truy vấn OQL lồng nhiều hơn 1 khối SFW. Mỗi khối SFW được biểu diễn bằng siêu đồ thị kết nối như sau: − Đồ thị các cạnh là các tập với số lượng nút hữu hạn, ta gọi một cạnh như vậy là siêu cạnh. Siêu đồ thị này được gọi là siêu đồ thị kết nối, mỗi thuộc tính của lớp C i được biểu thị bằng một nút. Nếu hai lớp C i và C j đều cùng một số các thuộc tính kế thừa từ một siêu lớp nào đó, hoặc chúng cùng kế thừa tất cả các thuộc tính từ một siêu lớp, chúng ta vẫn tạo riêng cho các thuộc tính này các nút khác nhau. − Các siêu cạnh của siêu đồ thị kết nối được tạo thành từ các biểu thức điều kiện và các lớp C i như sau: Đối với mỗi lớp C i , một siêu cạnh chứa tất cả các nút là các thuộc tính của C i , ta gọi là siêu cạnh đối tượng và được vẽ bằng 1 đường khép kín bao quanh tất cả các nút của siêu cạnh. Đối với mỗi biểu thức điều kiện dạng (3) hoặc (4), chúng ta sẽ tạo ra một siêu cạnh chứa tất cả các thuộc tính mặt trong biểu thức. Những siêu cạnh này được gọi là siêu cạnh điều kiện và chúng được biểu thị bằng đường nét chấm khép kín. Điều kiện dạng (1) trong siêu đồ thị, được gán nhãn nút là “A = a”. Biểu thức điều kiện dạ ng A = B (dạng (2)), với A, B là các thuộc tính trong hai lớp (có thể cùng là những thuộc tính được kế thừa từ một siêu lớp nào đó), thì chúng ta “trộn” các nút A và B lại với nhau đặt nhãn chung là tên của một trong hai thuộc tính. Các thuộc tính trong mệnh đề Select được bao trong một đường khép kín và gán nhãn là “head”, gọi là siêu cạnh đỉnh. Siêu cạnh đỉnh tương ứng với một lớp - kết quả của truy vấn. Nếu hai điều ki ện trên cùng một tập thuộc tính hoặc một điều kiện trên một tập thuộc tính của một lớp, chúng ta phải đặt tên cho mỗi siêu cạnh để thể phân biệt được chúng. Một lớp trong CDSL hướng đối tượng hoặc lớp kết quả thu được từ mệnh đề Select được biểu diễn bằng một siêu cạnh đối tượng hay siêu cạnh đỉnh tươ ng ứng. − Siêu cạnh kết hợp được vẽ bằng đường nét rời khép kín bao các thuộc tính liên quan. Các siêu cạnh kết hợp được gán nhãn là IS, IN, UNION, FORALL , EXIST , .vv. Truy vấn lồng OQL được kết nối từ các siêu đồ thị của các khối SFW bởi các siêu cạnh kết hợp. 2. Biểu diễn kết nối trong OQL Phép kết nối trong ngôn ngữ truy vấn CSDL hướng đối tượng OQL được biểu di ễn bằng 3 dạng thức kết nốikết nối hàm (hay kết nối ẩn dùng ký hiệu “ . ”); kết nối đồng nhất tường minh (các thực thể được so sánh với nhau một cách trực tiếp) và kết nối quan hệ truyền thống là kết nối dựa vào giá trị. Ví dụ 2: (kết nối hàm) Xét truy vấn tìm tên các khoa của các trường Đại học ở thành phố “Hà Nội” select (e.tenkhoa.tenkh) from GIANG_VIEN as e where e.tpho = “Ha Noi” Truy v ấn trên được viết lại như sau: define KHOA as d select (tenkhoa.tenkh) from GIANG_VIEN as e where e.tpho = “Ha Noi” AND e.tenkhoa IS (d) Trong đó, giá trị của thuộc tính tham chiếu e.tenkhoa được so sánh trực tiếp bằng toán tử IS với biến vùng d. Toán tử IS được dùng để so sánh các tham chiếu, nó trả về giá trị là true nếu hai tham chiếu trỏ đến cùng một đối tượng. Toán tử ISNOT được sử dụng để kiểm tra hai tham chiếu không quy về cùng một đối tượng. Thu ộc tính tenkhoa là thuộc tính kiểu KHOA, phép kết nối hàm được biểu diễn bằng một siêu cạnh kết hợp ( IS ). Truy vấn trên được biểu diễn bằng siêu đồ thị kết nối như sau: Hình 1. Siêu đồ thị kết nối của ví dụ 2 Ví dụ 3 : (kết nối dựa vào giá trị) Tìm tên của tất cả các hộ sống trong cùng thành phố với sinh viên tên là “Nga”. define SINH_VIEN as p1 select (p1.hoten) from p1, p2 in (SINH_VIEN union GIANG_VIEN) where p1.tpho = p2.tpho AND p2.hoten = “Nga” Truy vấn trên một kết nối dựa vào giá trị (p1.tpho = p2.tpho) và được biểu diễn bằng việc trộn hai nút p1.tpho, p2.tpho lại với nhau và đặt tên nhãn là tpho như hình 2. KHOA tenkh . ‘ = “Ha Noi” ‘ tenkhoa tpho GIANG_VIEN hoten head IS Hình 2. Siêu đồ thị kết nối của ví dụ 3 3. Biểu diễn các truy vấn lồng bằng siêu đồ thị kết nốidụ 4 : Xét truy vấn select e1.hoten from GIANG_VIEN as e1 where bomon =”Lap trinh” and (luong > ( select AVG(e2.luong) from GIANG_VIEN as e2 where e2.makhoa = e1.makhoa)) Trước tiên, chúng ta biểu diễn hai siêu đồ thị kết nối (a), (b) cho hai khối SFW trong câu truy vấn ở ví dụ 4, sau đó thực hiện việc trộn hai siêu đồ thị kết nối vào siêu đồ thị kết quả (c) bằng phép kết nối e2.makhoa = e1.makhoa và các biểu thức điều kiện tương ứng. Ví dụ 5 : Xét truy vấn cho biết tên các CBGV ở khoa ngân sách được cấp lớn hơn 250 (đơn vị tính: triệu đồng) và mức lương lớn hơn hoặc bằng 2.4. select e.hoten from GIANG_VIEN as e where e.luong >= 2.4 AND e.makhoa IN ( select s.makhoa from KHOA as s where s.ngansach > 250) Truy vấn được biểu diễn bằng siêu đồ thị kết nối như sau: Các siêu cạnh đối tượng biểu diễn các lớp GIANG_VIEN và KHOA. Đối với các siêu cạnh đỉnh, chúng ta 2 siêu cạnh đỉnh: e.hoten- siêu cạnh đỉnh (kết quả của truy vấn), s.makhoa - siêu cạnh đỉnh của khối SFW lồng. Hai siêu cạnh điều kiện e.luong >= 2.4, s.ngansach > 250 và siêu cạnh kết hợp e.makhoa được gán nhãn là IN. Hình 4. Biểu diễn siêu đồ thị kết nối của ví dụ 5 III. PHƯƠNG PHÁP ƯỚC LƯỢNG CÁC TRUY VẤN LỒNG BẰNG SIÊU ĐỒ THỊ KẾT NỐI 1. Ước lượng các siêu cạnh trong siêu đồ thị kết nối Định nghĩa: Lớp sở là một lớp được lưu trữ trong CSDL hướng đối tượng. Lớp dẫn xuất là lớp trung gian được sản sinh trong quá trình ước lượng truy vấn và được sử dụng như là đầ u vào trong các bước ước lượng sau. Chúng ta biểu diễn hình thức cho siêu đồ thị kết nối của truy vấn hướng đối tượng là dãy các maso hoten bomon GIANG_VIEN ‘= “Lap trinh” ‘ head maso hoten Avg (luong) . head (b) (a) ‘= “Lap trinh” ‘ con hoten luong maso tenkhoa bomon con maso bomon (luong ) hoten GIANG_VIEN GIANG_VIEN head Avg > (c) GIANG_VIEN Hình 3. Biểu diễn siêu đồ thị kết nối của ví dụ 4 hoten makhoa luong makhoa tenkh ngansach >250 >= 2.4 head IN GIANG_VIEN KHOA hoten tpho . GIANG_VIEN SINH_VIEN . hoten ‘ “Nga” = ‘ hea d (a) (b) sự kiện: S = (E 1 , E 2 , ., E n ), trong đó, các sự kiện E i thể là siêu cạnh đối tượng, siêu cạnh điều kiện hoặc siêu cạnh kết hợp. Lớp dẫn xuất thu được sau tác động của một sự kiện E j được ký hiệu là TRAN(E 1 , ., E j ), trong đó E 1 phải là siêu cạnh đối tượng (trường hợp siêu đồ thị kết nối chỉ 1 siêu cạnh thì đó phải là siêu cạnh đối tượng). Thủ tục được giới thiệu sau đây thực hiện việc ước lượng lớp dẫn xuất với sự kiện E j trong S. Thủ tục nhận tham số vào là lớp dẫn xuất thu được sau khi thực hiện sự kiện E j-1 và sự kiện E j , kết quả trả về của thủ tục là lớp dẫn xuất sau tác động của E j . Procedure EVAL(TRAN(E 1 , ., E j-1 ), E j ) {với tham số vào TRAN(E 1 , ., E j-1 ), E j và kết quả là TRAN(E 1 , ., E j )} Begin (1) Khởi tạo, EVAL(E 1 ) cho kết quả: TRAN(E 1 ) = C 1 , trong đó C 1 tương ứng với siêu cạnh đối tượng E 1 . (2) If (E j là một điều kiện hoặc siêu cạnh điều kiện) then TRAN(E 1 , ., E j ) = σ F (TRAN(E 1 , ., E j-1 )) {F là biểu thức điều kiện}. (3) If (E j là siêu cạnh đối tượng đối với lớp C j giao với siêu đồ thị kết nối) then TRAN(E 1 , ., E j ) = TRAN(E 1 , ., E j-1 )) C j (4) If (E j là siêu cạnh đối tượng không giao với siêu đồ thị) then TRAN(E 1 , ., E j ) = TRAN(E 1 , ., E j-1 )) × C j End; Xét ở ví dụ 2, ta S = (GIANG_VIEN, KHOA), thì TRAN(GIANG_VIEN, KHOA) = TRAN(GIANG_VIEN) × KHOA. Trongdụ 3, S = (GIANG_VIEN, SINH_VIEN), TRAN(GIANG_VIEN, SINH_VIEN) = TRAN(GIANG_VIEN) SINH_VIEN. Khi tất cả các siêu cạnh, điều kiện cùng được ước lượng bằng cách thực hiện các phép toán đối tượng tương ứng, ta chiếu lớp dẫn xuất lên các thuộc tính đặc trưng (các thuộc tính tham gia ở mệnh đề Select - các nút ở siêu cạnh đỉnh), thu được lớp kết quả (siêu cạnh đỉnh) - Đây chính là câu trả lời của truy vấn. Từ đó, ta giải thu ật ước lượng các siêu cạnh trong siêu đồ thị kết nối như sau: Giải thuật: Input: Siêu đồ thị kết nối S = (E 1 , E 2 , ., E n ) Output: Các lớp dẫn xuất. Method (1) Biểu diễn siêu đồ thị kết nối với dãy S = (E 1 , E 2 , ., E n ); (2) for j = 1 to n do (3) Call EVAL(TRAN(E 1 , ., E j-1 ), E j ); (4) Chiếu TRAN(E 1 , ., E n ) lên trên các thuộc tính đặc trưng. 2. Các quy tắc ước lượng các siêu cạnh trong siêu đồ thị kết nối dựa trên các phép toán chọn và chiếu Trong tiến trình thực hiện truy vấn, việc đưa phép chọn và phép chiếu lên trước các phép kết nối và tích đề các được thực hiện càng sớm càng tốt (nếu thể). Phép chọn thực hiện việc loại bỏ các đối tượng không liên quan trong các lớp, làm giảm không gian tìm kiếm; phép chiếu loại bỏ các thuộc tính không mặt trong kết qu ả truy vấn, hoặc không phải là các thuộc tính kết nối, làm giảm đáng kể kích thước các lớp trong tham gia kết nối, tích đề các. Vì vậy, việc áp dụng các quy tắc hueristic trong ước lượng siêu đồ thị kết nối trên các siêu cạnh điều kiện đối với các phép toán chọn, chiếu được phát biểu như sau: ( Q1 ) Sử dụng một ràng buộc (điều kiện kiểu A = a, A > a, . hoặc một t ập hạn chế các giá trị của một thuộc tính) để truy vấn trên một lớp (nếu thể). ( Q2 ) Ước lượng một điều kiện hoặc một siêu cạnh điều kiện càng sớm càng tốt nếu như thể. ( Q3 ) Sau khi một siêu cạnh đã được đánh dấu, chiếu loại bỏ các thuộc tính không liên quan từ lớp suy dẫn. IV. KẾT LUẬN V ới phạm vi trong bài báo này, chúng tôi tập trung nghiên cứu mở rộng phương pháp biểu diễn câu truy vấn lồng trong CSDL hướng đối tượng (với ngôn ngữ truy vấn OQL) bằng siêu đồ thị kết nối và trình bày giải thuật ước lượng các siêu cạnh trong siêu đồ thị kết nối nêu trên. Phương pháp ước lượng này chưa phải là thuật tốn tối ưu truy vấn lồng bằng siêu đồ thị kết nối trên CSDL hướng đối tượng. Hướng nghiên cứu tiếp theo của chúng tơi là giải thuật tối ưu hố truy vấn lồng trên siêu đồ thị kết nối. TÀI LIỆU THAM KHẢO [1] Đồn Văn Ban, Lê Mạnh Thạnh và Hồng Bảo Hùng, Sự tương đương trong biểu diễn giữa ngơn ngữ truy vấn OQL và đại số đối tượng, Tạp chí Tin học và Điều khiển học, Viện Khoa học và Cơng nghệ Việt Nam, Tập số 20, số 3, 2004, p. 257- 269. [2] Cluet, Sophie and Moerkotte, Guido, Nested Queries In Object Bases, In Fifth International Workshop on Database Programming Languages, Gubbio, Italy, September, 1995. [3] Han, Jia Liang, Optimizing Relational Queries in Connection Hypergraphs: Nested Queries, Views, and Binding Propagations, The VLDB Journal, Springer Verlag, 1998. [4] Lê Mạnh Thạnh, Hồng Bảo Hùng, Ngơn ngữ truy vấn hướng đối tượ ng và tối ưu hố truy vấn trên CSDL hướng đối tượng bằng phương pháp biến đổi đại số, Hội nghị khoa học kỷ niệm 25 năm thành lập Viện Cơng nghệ thơng tin, Hà nội, 12/2001. [5] Trigoni, Agathoniki, Semantic Optimization of OQL Queries, Technical Report,Number 547, University of Cambridge, Computer Laboratory, UCAM-CL-TR-547, ISSN 1476-2986, October, 2002. [6] Trigoni A. and Bierman G.M., Inferring the Principal Type and the Schema Requirements of an OQL Query. In 18th British National Conference on Databases (BNCOD), pp.185–201, 2001. [7] Ullman, Jeffrey D. , Principles of Database and Knowledge-Base Systems, Vol I, II, Computer Science Press, Rockville, 1989. [8] Vanderberg, Scott Lee, Algebras For Object-Oriented Query Languages, A thesis submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy (Computer Sciences), at the University of Winconsin-Madison, 1993. [9] Yu, Clement T., Meng, Weiyi, Principles of Database Query Processing for Advanced Applications, Morgan Kaufmann Publishers, Inc. San Francisco, California, 1998. Ngày nhận bài 30/8/2004 LƯỢC TÁC GIẢ LÊ MẠNH THẠNH Sinh ngày 1/6/1953 tại Quảng Trị. Tốt nghiệp Đại học Bách khoa Hà Nội chun ngành Tốn cơng trình năm 1977, bảo vệ luận án Tiến sỹ tại Hungari, chun ngành Đảm bảo tốn học cho máy tính năm 1993. Hiện là Hiệu trưởng trường Đại học Khoa học Huế. Hướng nghiên cứu: cơ sở dữ liệu suy dẫn và cơ sở dữ liệu hướng đối t ượng. Email: lmt.hue@dng.vnn.vn ĐỒN VĂN BAN Sinh ngày 18/02/1949 tại Nam Định. Tốt nghiệp Đại học Tổng hợp Warszawa năm 1975. Bảo vệ luận án tiến sỹ tại Đại học Tổng hợp Warszawa năm 1978. Hiện đang cơng tác tại Viện Cơng nghệ thơng tin Hướng nghiên cứu hiện nay: Mơ hình hố các hệ thống thơng tin sử dụng ngơn ngữ UML trong phân tích, thiết kế hệ thống hướng đối tượng. Email: dvban@ioit.ncst.ac.vn HỒNG BẢO HÙNG Sinh ngày 23/10/1971 tại Huế. Tốt nghiệp Đại học Sư phạm Huế chun ngành Tốn học năm 1993, tốt nghiệp Đại học Bách khoa Hà Nội chun ngành Tin học năm 1995, tốt nghiệp Thạc sĩ tại Đại học Bách khoa Hà Nội, chun ngành Cơng nghệ thơng tin năm 2002, hiện đang là nghiên cứu sinh của Viện Cơng nghệ thơng tin. Hiện đang cơng tác tại Trường Cao đẳng Sư phạm Thừa Thiên Huế. Hướng nghiên cứu: CSDL hướng đối tượng. Email: hbhung@hueuni.edu.vn . queries. I. GIỚI THI U Một trong lĩnh vực quan trọng được đề cập trong CSDL hướng đối tượng là tối ưu hoá truy vấn hướng đối tượng. Khi thực thi một truy. e.tpho = “Ha Noi Truy v ấn trên được viết lại như sau: define KHOA as d select (tenkhoa.tenkh) from GIANG_VIEN as e where e.tpho = “Ha Noi AND

Ngày đăng: 24/04/2013, 21:42

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan