Giáo trình Hệ quản trị Cơ sở dữ liệu

99 511 0
Giáo trình Hệ quản trị Cơ sở dữ liệu

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

KHOA CÔNG NGH THÔNG TIN & TRUY N THÔNG Ð I H C C N THO Giáo trình: H QU N TR CO S D LI U B môn H Th ng Thông Tin & Toán 07/2009 ng D ng Khoa CNTT & TT - ÐHCT PH N T NG QUAN I M C ÐÍCH YÊU C U Sau h c xong môn này, sinh viên có th : K t n i v i CSDL server, t o/xóa/thay d i table, t o ch m c, thêm/xóa/thay d i d li u m t table S d ng thành th o câu l nh SELECT d tr l i câu h i truy v n S d ng ngôn ng PL/SQL d t o Stored Procedures / Functions Thi t l p ràng bu c toàn v n s d ng Trigger Oracle Qu n lí danh m c h th ng (system catalog) hay meta data Qu n tr quy n ngu i dùng II N I DUNG C T LÕI Tài li u hu ng d n g m ph n: Ph n gi i thi u t ng quan v môn h c, dó trình bày c th ki n th c, k nang mà sinh viên c n d t du c sau h c môn Ngoài ra, trình bày so lu c v n i dung c a tài li u, ki n th c tiên quy t phuong pháp h c t p Ph n gi i thi u nét co b n v h qu n tr Oracle Trong dó, gi i thi u so lu c v ph n m m SQL Developer du c s d ng d so n th o th c thi câu truy v n d li u Ngoài ra, ph n này, giáo trình cung trình bày m t cách chi ti t thao tác c n thi t d có th th c hành Ph n g m 12 th c hành c th M i s có b c c g m ph n nhu sau: M c tiêu: nêu rõ m c tiêu rèn luy n c a Lý thuy t: cung c p ng n g n ki n th c câu l nh c n dùng Bài t p có hu ng d n Bài t p t làm III KI N TH C TIÊN QUY T Nhu m t môn b t bu c, môn h c du c dua vào gi ng d y cho sinh viên chuyên ngành Công Ngh Thông Tin v i yêu c u sinh viên dã h c xong môn H Co S D Li u (CT106) IV PHUONG PHÁP H C T P V i m c tiêu nâng cao kh nang t h c t p t nghiên c u c a sinh viên, ngu i so n dã c g ng l ng ghép vào n i dung ví d minh h a don gi n, c th ; d ng th i b trí b c c v i mong mu n t o s d hi u cho sinh viên ngu i d c Ð h c t t môn h c này, tru c h t sinh viên c n ph i: T nghiên c u tài li u hu ng d n, d c bi t ph n ph n Tru c m i bu i th c hành, sinh viên c n dành kho ng 30 phút d xem l i ph n lý thuy t c a câu l nh s th c hành (ph n c a m i + tài li u tham kh o n u c n thi t) Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT Trong m i bu i th c hành, sinh viên th c hi n yêu c u theo hu ng d n Sinh viên c n ph i t suy nghi tìm dáp án cho câu h i t p tru c tham kh o dáp án c a giáo viên cung c p M i bu i sinh viên c n ph i hoàn t t nh t ph n t p có hu ng d n Còn ph n t p t làm sinh viên ph i t hoàn t t tru c ti n hành th c hành ti p theo Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT PH N CO B N V ORACLE I M T VÀI KHÁI NI M ÐU C S D NG TRONG ORACLE 10G: Database Instance Các h qu n tr co s d li u (CSDL) d u dùng c b nh máy tính thi t b luu tr nhu c ng d ho t d ng Các c ng cung c p kh nang luu tr lâu dài m t không gian r ng l n d ch a hàng tri u m u tin có th lên d n hàng gigabyte Tuy nhiên, truy c p d li u t c ng ch m hon nhi u so v i truy c p t b nh Vì th h co s d li u d u s d ng b nh vào vi c n p tru c d li u nh m tang t c d truy v n Trong Oracle, m t co s d li u (database) m t t p h p t p tin h th ng luu tr d li u ngu i dùng ho c chuong trình dua vào thông tin v c u trúc c a co s d li u (metadata) Ð có th truy v n c p nh t CSDL, Oracle ph i kh i d ng m t s ti n trình n n c p phát m t vài vùng nh s d ng su t trình thao tác CSDL Khi m t CSDL du c kh i d ng (start), m t SGA (System Global Area) du c c p phát SGA m t vùng b nh dùng d luu tr d li u thông tin di u n c a m t th hi n (instance), ngu i dùng k t n i d n server du c chia s d li u có SGA Ngoài ra, Oracle cung c p phát vùng d m b nh d ch a d ng d li u thông tin di u n c a ti n trình máy ch (server process), PGA du c dùng x lý câu l nh truy v n SQL, qu n lý truy nh p thông tin v phiên làm vi c (session) Ð ng th i, ti n trình n n c a Oracle cung du c kích ho t Các ti n trình có nhi m v qu n lý c u trúc b nh , d ng b hóa d li u vào c ng nhi m v b o trì t ng quát khác (ghi nh t ký, ph c h i…) S k t h p gi a SGA, PGA ti n trình n n du c g i th hi n CSDL (Database Instance ho c Oracle Instance) Nhìn chung, m i th hi n có m t t p h p ti n trình trì thúc ép m i quan h gi a c u trúc v t lý c a CSDL c u trúc b nh S lu ng ti n trình ph thu c vào c u hình c a m i th hi n CSDL Trong m t server, nhi u CSDL có th t n t i song song Vì v y, d không b l n l n gi a CSDL khác nhau, m i th hi n CSDL du c nh n d ng b ng m t SID riêng bi t (System Identifier) M t CSDL có th du c m (open hay mount) b i nhi u hon m t th hi n, nhung m t th hi n ch có th m nhi u nh t m t CSDL mà Hình Database Instance Data dictionary T di n d li u m t t p h p b ng (table) khung nhìn (view) gi ng nhu CSDL khác, noi luu tr thông tin v c u trúc v t lý lu n lý c a CSDL Các thông tin bao g m: Thông tin ngu i dùng (quy n, vai trò…) Ràng bu c toàn v n c a b ng d li u Tên ki u d li u c a c t b ng d li u Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT Thông tin v vùng nh du c c p phát s d ng c a schema object … Th hi n CSDL truy c p d n t di n d li u d phân tích cú pháp câu l nh SQL SYS ch nhân ngu i dùng nh t có th toàn quy n thao tác b ng khung nhìn c a t di n d li u Ð tham kh o b ng khung nhìn c a t di n d li u, s d ng câu l nh: select * from DICT[IONARY] Schema Schema Object Schema m t t p h p d i tu ng CSDL (database object ho c schema object) thu c v m t ngu i dùng M i ngu i dùng CSDL s h u nh t m t schema có tên trùng v i tên ngu i dùng, ngu c l i m i schema ch tuong ng v i m t ngu i dùng mà Schema Object c u trúc lu n lý liên quan tr c ti p d n d li u c a CSDL, bao g m c u trúc nhu b ng (table), khung nhìn (view), th t c tr s n (stored procedure)… II C U TRÚC CO S D LI U TRONG ORACLE Trong h qu n tr Oracle, m t CSDL du c c u thành b i c u trúc: lu n lý v t lý C u trúc lu n lý mô t vùng nh dùng d luu tr d i tu ng nhu b ng, hàm… Ngu c l i, c u trúc v t lý du c xác d nh b i t p tin h th ng hình thành nên CSDL C u trúc lu n lý (logical structure) a Extent Ðon v luu tr lu n lý nh nh t du c c p phát cho m t d i tu ng co s d li u, bao g m m t dãy liên t c ô d li u (data blocks) du c c p phát d luu tr m t ki u thông tin nh t d nh b Segment T p h p extent du c c p phát d luu tr c u trúc d li u nh t d nh extent du c luu tr m t tablespace Ví d , d li u c a m t b ng du c luu m t table segment, ch m c du c luu index segment… Khi extent c p phát cho segment d y d li u, Oracle s c p phát thêm extent cho segment dó Vì extent du c c p phát c n thi t nên extent m t segment có th không liên t c b nh Oracle cung c p m t lo i segment d c bi t du c g i rollback segment Segment không ch a d i tu ng CSDL, mà ch a “hình nh tru c” (before image) c a d li u du c thay d i m t giao tác chua hoàn thành Các thay d i d li u có th du c cu n l i b ng cách s d ng segment c Tablespace Tuong duong m t phân vùng lu n lý c a co s d li u T t c d i tu ng c a co s d li u d u du c luu tr tablespace M t co s d li u có nh t m t tablespace mang tên SYSTEM ch a t di n d li u (data dictionary) Các tablespace khác du c t o nh m ph c v cho ng d ng tác v khác Gi a schema tablespace m i liên quan v i Các d i tu ng schema có th t n t i tablespace khác Ngu c l i, Các tablespace có th luu tr d i tu ng schema khác d Database M t CSDL g m m t ho c nhi u vùng nh Giáo trình th c hành H QTCSDL c g i tablespace dùng d luu tr d li u Trang Khoa CNTT & TT - ÐHCT C u trúc v t lý (physical structure) a Data Block Ðon v luu tr nh nh t du c dùng co s d li u, du c xác d nh b i m t s byte nh t d nh vùng nh v t lý c a co s d li u Ð l n c a data block du c xác d nh co s d li u du c t o Hình M i quan h gi a Data block, extent segment b Datafile V m t lu n lý, Oracle luu tr d li u tablespace V m t v t lý, d li u du c luu tr datafiles (có ph n m r ng dbf) tuong ng v i tablespace B n ch t c a m t co s d li u m t t p h p datafiles du c luu tr thi t b khác nhu dia t , dia quang h c… Hình M i tuong quan gi a datafiles tablespace Ngoài datafiles c a co s d li u, t n t i lo i t p tin khác k t h p v i m t th hi n co s d li u (database instance): Redo-log file (*.rdo ho c *.log): m i th hi n co s d li u trì m t t p h p t p tin d ng d ghi l i toàn b giao tác (transaction) Khi CSDL b l i, t p tin nh t ký du c dùng d ph c h i l i d li u Control file (*.ctl): m i th hi n co s d li u có nh t t p tin d ng Nó r t c n thi t cho ho t d ng bình thu ng c a CSDL Các t p tin du c c p nh t thu ng Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT xuyên trình ho t d ng c a CSDL, v y du c d t vào ch d ghi CSDL du c m Vì lý dó t p tin không truy c p du c, CSDL s không ho t d ng dúng d n Các t p tin di u n ghi nh n thông tin c a CSDL nhu tên CSDL, thông tin v tablespace redo-log file… Archive / backup file: m t th hi n CSDL du c th c thi du i phuong th c archive-log, ti n trình ARCH c a Oracle s dùng t p tin d ng luu l i thay d i t p tin redo-log Hình Quan h gi a c u trúc lu n lý v t lý CSDL C p phát thêm vùng nh cho CSDL Ta có cách d m r ng vùng nh cho CSDL : B sung thêm datafile cho tablespace T o m t tablespace m i Tang vùng nh c a datafile B sung thêm datafile T o tablespace m i Tang vùng nh c a Datafile Hình C p phát thêm vùng nh cho CSDL Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT III KHÔNG GIAN D LI U (TABLESPACE) VÀ B NG D LI U (TABLE) Không gian d li u Oracle d nh nghia lo i không gian d li u khác nhau: Không gian d li u c d nh (permanent tablespace) ch a d i tu ng CSDL t n t i lâu dài (persistent schema objects), d i tu ng du c luu datafile Undo tablespace m t ki u không gian d li u c d nh du c dùng d qu n lý vi c hoàn tác d li u (undo data) n u co s d li u du c d t du i ch d qu n lý hoàn tác t d ng (automatic undo management) Oracle khuy n cáo s d ng undo tablespace thay s d ng rollback segment cho vi c hoàn tác d li u Không gian d li u t m th i (temporary tablespace) ch a d i tu ng CSDL m t phiên làm vi c Tablespace d ng du c dùng d qu n lý vùng nh cho thao tác s p x p (sort operations) CSDL Ví d , n u ta k t n i hai b ng d li u r t l n, Oracle không th th c hi n thao tác s p x p b nh , m t vùng nh s du c c p phát temporary tablespace d th c hi n thao tác Các l nh SQL c n cung c p vùng nh th c hi n thao tác s p x p g m: CREATE INDEX, ANALYZE, Select DISTINCT, ORDER BY, GROUP BY, UNION, INTERSECT, MINUS,… Trong gi ng này, ch quan tâm d n permanent tablespace B ng d li u B ng d li u du c d nh danh nh t b i tên bao g m nhi u hàng luu tr d li u, m i hàng du c g i tuple hay record M t b ng d li u có th có nhi u c t M i c t du c d nh nghia b i tên ki u d li u, mô t thu c tính c a b (tuple) M t b ng d li u có th có t i da 254 c t có ki u d li u gi ng ho c khác IV CÁC KI U D LI U TRONG ORACLE: Tên ki u Gi i thích Bi u di n h ng number(p,s) Ki u s th p phân (10-84 10127) Integer Ki u s nguyên, t ng v i Number(38) Float Ki u s th c, t Date Ngày tháng (1/1/-4712 Char Ký t có dài ô nh không c nh t i a 255 ký t (không h tr Unicode) Nchar Ký t có dài ô nh không c 255 ký t (h tr Unicode) Varchar2 Ký t có dài ô nh không c nh t i a 2000 ký t (không h tr Unicode) Nvarchar2 Ký t có dài ô nh không c 2000 ký t (h tr Unicode) ng ng Giáo trình th c hành H QTCSDL 1894.1204 ng v i Number 31/12/9999) nh t i a nh t i a 1, 20 101.5E5 0.5E-2 '10-FEB-04' '10/02/04' (tùy vào nh d ng th hi n ngày c a h th ng) '50% complete.' ‘Nguy n Van Minh’ ‘Luong Tâm’ '50% complete.' ‘Nguy n Van Minh’ ‘Luong Tâm’ Trang Khoa CNTT & TT - ÐHCT V PRIVILEGES VÀ ROLES Privileges Quy n ngu i dùng quy n th c thi m t câu l nh SQL ho c quy n truy c p d n d i tu ng c a ngu i dùng khác Trong Oracle, có hai lo i quy n ngu i dùng: quy n h th ng (system privilege) quy n d i tu ng (object privilege) Có m t s quy n t h p bao g m nhi u quy n M t quy n có th du c gán cho m t ngu i dùng (user) ho c m t nhóm ngu i dùng v i vai trò gi ng (role) T p h p quy n Oracle c d nh, ngu i dùng không th d nh nghia thêm a System privileges Có 140 quy n h th ng phiên b n Oracle 9.0.1, ta có th tham kh o quy n qua câu l nh SQL: SELECT name FROM system_privilege_map ; Tuy nhiên, quy n h th ng quan tr ng nh t là: Create session: quy n này, ngu i dùng s không truy c p du c CSDL s nh n du c l i ORA01-045 Create table Create view Create procedure Sysdba: tác v Oracle yêu c u ngu i dùng ph i có quy n Kh i d ng CSDL T t (shutdown) CSDL Luu d phòng CSDL Ph c h i CSDL T o CSDL Ð tham kh o ngu i dùng có quy n sysdba hay sysoper, th c thi câu l nh: SELECT * FROM v$pwfile_users b Object privileges Các quy n du c gán cho ngu i dùng d i tu ng CSDL sau: Table: select, insert, update, delete, alter, debug, flashback, on commit refresh, query rewrite, references, all View: select, insert, update, delete, under, references, flashback, debug Sequence: alter, select Package, procedure, function: execute, debug Materialized view: delete, flashback, insert, select, update Directory: read, write Library: execute User defined type: execute, debug, under Operator: execute Indextypes: execute Roles Thông thu ng, vi c s d ng role ph c v cho m c dích sau: Qu n lý quy n c a m t ng d ng CSDL Qu n lý quy n c a m t nhóm ngu i dùng có vai trò gi ng d i v i CSDL Giáo trình th c hành H QTCSDL Trang Khoa CNTT & TT - ÐHCT a Roles du c d nh nghia tru c (predefined roles) Các role du c d nh nghia s n m t CSDL du c t o m i, role co b n bao g m: Connect du c gán quy n: create session, alter session, create synonym, create view, create database link, create table, create cluster create sequence Resource g m quy n c a connect quy n: create table , create cluster, create sequence, create trigger create procedure, create type, create indextype create operator Dba du c gán t t c quy n du c d nh nghia c a Oracle Ð tham kh o quy n c a role, ta dùng l nh: SELECT * FROM DBA_SYS_PRIVS WHERE grantee='' b Roles ngu i dùng d nh nghia (user roles) Ta có th t d nh nghia m t role cho m t nhóm ngu i dùng CSDL v i yêu c u quy n chung ph bi n c a nhóm VI NG I DÙNG Ngu i dùng co s d li u tuong ng v i m t truy c p (login) du c gán m t s quy n nh t d nh Các thông tin v ngu i dùng du c luu t di n d li u ngu i dùng du c c p phát m t vùng b nh (tuong ng v i m t schema) luu tr d i tu ng CSDL Các bu c t o ngu i dùng CSDL Oracle: T o tablespace c n thi t dành cho ngu i dùng (n u c n thi t) T o ngu i dùng Gán quy n cho ngu i dùng VII IMPORT VÀ EXPORT Gi i thi u Ch c nang export cho phép xu t n i dung lu n lý c a m t CSDL vào m t t p tin nh phân d nh nghia b i Oracle du c g i t p tin dump Ch c nang import s dùng t p tin d t o l i d i tu ng CSDL T p tin dump m t CSDL có th du c dùng d t o l i d li u m t CSDL ho c m t CSDL khác, c CSDL du c cài d t du i nh ng c u hình ph n c ng ph n m m khác Ví d , t p tin dump c a m t CSDL h di u hành Windows có th dùng d t o l i d i tu ng CSDL h di u hành Linux Trong Windows, d th c hi n ch c nang ta dùng l nh h th ng exp imp (th c thi windows command console) Các phuong th c c a ch c nang import export a C p d CSDL Ðây phuong th c ph c t p nh t V i ch c nang export, t t c d i tu ng c a CSDL du c xu t t p tin dump tr d i tu ng c a m t s ngu i dùng nhu: SYS, ORDSYS, CTXSYS, MDSYS, ORDPLUGINS Ð ng th i, t p tin dump bao g m thông tin liên quan d n c u trúc c a CSDL nhu d nh nghia tablespace segments rollback… V i ch c nang import, t t c d i tu ng s du c t o l i CSDL dích Tham s FULL cho phép xác d nh phuong th c ch c nang import export Chú ý : tru ng h p import c CSDL, c n ph i t o l i t t c ngu i dùng quy n tuong ng CSDL ngu n Giáo trình th c hành H QTCSDL Trang 10 Khoa CNTT & TT - ÐHCT Phân b h n m c s d ng t ng tablespace Gán default tablespace temporary tablespace Phân quy n truy nh p (privileges - quy n; roles) cho user v a t o l p b T o m i user v i co ch xác nh n b i database Cú pháp: CREATE USER username IDENTIFIED {BY password | EXTERNALLY} [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ] ] V i: username Tên truy nh p c a user BY password Xác d nh co ch xác nh n user b i database v i M t kh u truy nh p password EXTERNALLY Xác d nh co ch xác nh n user b i h di u hành DEFAULT/ TEMPORARY TABLESPACE Xác d nh default/temporary tablespace cho user QUOTA Xác d nh lu ng không gian t i user d luu tr d i tu ng tablespace tuong ng T khoá không h n d nh s lu ng không da c p phát cho t ng UNLIMITED cho bi t gian c p phát Ví d : T o m t ngu i dùng có tên userTest, password gi ng tên, c p Quota 1M tablespace USERS CREATE USER userTest IDENTIFIED BY usertest DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 1M ON USERS ; c Thay m t kh u c a user Cú pháp: ALTER USER user [ IDENTIFIED {BY password | EXTERNALLY }] Ví d : Ð i m t kh u c a ngu i dùng userTest thành ptest ALTER USER userTest IDENTIFIED BY ptest; d Thay d i h n m c (quota) s d ng tablespace Giáo trình th c hành H QTCSDL Trang 85 Khoa CNTT & TT - ÐHCT Trong m t s tru ng h p, ta có th thay d i h n m c s d ng tablespace khi: Các tables c a user dó không th m r ng d luu tr thêm du c n a Các ng d ng du c c i ti n dòi h i b sung thêm tables hay indexes Các d i tu ng du c t ch c l i du c d t nhi u tablespaces khác Cú pháp: ALTER USER user [ DEFAULT TABLESPACE tablespace] [ TEMPORARY TABLESPACE tablespace] [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ] Ví d : Tang h n m c cho ngu i dùng userTest thành 2M ALTER USER userTest QUOTA 2M ON USERS ; e Hu User Cú pháp: DROP USER username [CASCADE] Luu ý: CASCADE s hu t t c d i tu ng schema tru c xoá User Nó c n du c ch rõ schema ch a nhi u d i tu ng Ta không th hu du c user hi n dang k t n i t i Oracle server f Thông tin v user Ta có th l y thông tin liên quan t i user data dictionary DBA_USERS DBA_TS_QUOTAS V i m i user, ta có th xác d nh du c thông tin v h n m c: Ví d : SELECT tablespace_name, blocks, max_blocks, bytes, max_bytes FROM dba_ts_quotas WHERE username = 'userTest'; N u k t qu tr v có giá tr -1 c t MAX_BLOCKS MAX_BYTES: cho bi t c t chua du c gán giá tr tu ng minh Ho c ta cung có th l y thông tin v Account c a user Ví d : SELECT username, account_status, temporary_tablespace FROM dba_users; Giáo trình th c hành H QTCSDL Trang 86 Khoa CNTT & TT - ÐHCT QU N LÝ QUY N H TH NG V i m i user du c t o ra, có lo i quy n: Quy n h th ng (System Privileges): Các quy n cho phép user th c hi n vi c dó CSDL ch ng h n t o b ng, t o view, Quy n d i tu ng (Object Privileges) Các quy n cho phép user th c hi n vi c dó m t d i tu ng c a CSDL ch ng h n quy n SELECT, INSERT, UPDATE, m t b ng dó a Các l quy n h th ng Oracle database có kho ng 80 quy n h th ng s dang ti p t c tang lên Các quy n h th ng có th chia nhu sau: Các quy n cho phép th c hi n thao tác truy c p, t o dung lu ng luu tr h th ng ví d nhu: CREATE SESSION, CREATE TABLESPACE Các quy n cho phép qu n lý d i tu ng thu c v m t user ví d nhu: CREATE TABLE Các quy n cho phép qu n lý d i tu ng b t c m t schema ví d nhu câu l nh: CREATE ANY TABLE Có th di u n quy n b ng cách câu l nh GRANT hay REVOKE Phân lo i TABLE SESSION TABLESPACE Các quy n thông d ng CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE CREATE SESSION ALTER SESSION RESTRICTED SESSION CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE Chú ý: Các users có quy n ANY d u có th truy xu t b ng thu c data dictionary ngo i tr ti n t USER_ALL b t c views dó quy n du c gán cho PUBLIC Create Session quy n t i thi u nh t c a m t user d có th k t n i vào CSDL Các quy n nhu CREATE TABLE, CREATE PROCEDURE, CREATE TRIGGER bao g m c quy n xoá d i tu ng dó CREATE TABLE bao g m quy n CREATE INDEX ANALYZE, Các user c n có d quota tablespace hay ph i du c gán UNLIMITED TABLESPACE Ð truncate b ng quy n DROP ANY TABLE du c s d ng Giáo trình th c hành H QTCSDL Trang 87 Khoa CNTT & TT - ÐHCT b Gán quy n h th ng S d ng cú pháp sau dây d gán quy n h th ng cho user Cú pháp: GRANT {system_priv|role} [, {system_priv|role} ] TO {user|role|PUBLIC} [, {user|role|PUBLIC} ] [WITH ADMIN OPTION] V i: system_priv ch role ch PUBLIC gán WITH ADMIN OPTION cho quy d nh quy n h th ng s d ng d nh tên Role du c gán quy n h th ng cho t t c user phép user du c gán quy n có th n hay Role dó cho user khác gán Ví d : GRANT CREATE SESSION,CREATE TABLE TO userTest; Ho c n u mu n cho userTest có th c p l i quy n c a cho user khác, ta s d ng thêm m nh d WITH ADMIN OPTION GRANT CREATE SESSION,CREATE TABLE TO userTest WITH ADMIN OPTION; M t s hu ng d n Ð có quy n h th ng, user c n du c gán quy n có kèm thêm tu ch n WITH ADMIN OPTION Ngu i du c gán v i tu ch n WITH ADMIN OPTION có th ti p t c gán cho m t user khác quy n h th ng v i WITH ADMIN OPTION B t c m t user có quy n GRANT ANY ROLE có th gán b t kì quy n database Ngu i du c gán v i tu ch n WITH ADMIN OPTION có th gán quy n hay l y l i quy n t b t c user hay role database c Thu h i quy n h th ng S d ng cú pháp sau dây d l y l i quy n h th ng Cú pháp: REVOKE {system_priv|role} [, {system_priv|role} ] FROM {user|role|PUBLIC} [, {user|role|PUBLIC} ] Ví d : REVOKE CREATE TABLE FROM userTest; Giáo trình th c hành H QTCSDL Trang 88 Khoa CNTT & TT - ÐHCT Chú ý: Câu l nh REVOKE ch có th l y l i quy n c a mà dã du c gán tr c ti p b ng câu l nh GRANT Thu h i quy n h th ng có th nh hu ng d n m t s d i tu ng ph thu c Ví d : n u quy n SELECT ANY TABLE du c gán cho user user dó du c gán th t c hay view mà s d ng b ng thu c v user khác vi c l y l i quy n s làm cho th t c hay view dó tr nên không h p l d Xem thông tin v quy n Thông tin v quy n du c l y t view data dictionary: DBA_SYS_PRIVS SESSION_PRIVS Các thông tin bao g m: DBA_SYS_PRIVS: GRANTEE, PRIVILEGE, ADMIN OPTION SESSION_PRIVS: PRIVILEGE Ví d 1: L êt kê quy n h th ng du c gán cho user role: SELECT * FROM DBA_SYS_PRIVS; Ví d 2: Mu n bi t user hi n hành có quy n SELECT * FROM session_privs; QU N LÝ QUY N Ð I TU NG a Quy n d i tu ng M i quy n d i tu ng du c gán cho phép ngu i dùng du d i tu ng, b ng du i dây li t kê quy n thông d ng có th Quy n Table View ALTER X DELETE X X EXECUTE INSERT X X SELECT X X UPDATE X X c th c thi m t s thao tác du c gán m t d i tu ng Procedure X b Gán quy n d i tu ng S d ng cú pháp sau dây d gán m t quy n d i tu ng Cú pháp: GRANT { object_priv [(column_list)] [, object_priv [(column_list)] ] |ALL [PRIVILEGES]} ON [schema.]object TO {user|role|PUBLIC} [, {user|role|PUBLIC} ] [WITH GRANT OPTION] V i: Giáo trình th c hành H QTCSDL Trang 89 Khoa CNTT & TT - ÐHCT object_priv column_list Ch d nh quy n d i tu ng du c gán Ch d nh c t c a m t b ng hay view (tu ch n ch s d ng gán quy n INSERT hay UPDATE ALL Gán t t c quy n cho d i tu ng mà dã du c gán v i WITH ADMIN OPTION ON object ch d nh d i tu ng dó quy n du c gán WITH GRANT OPTION cho phép ngu i du c gán quy n có th gán quy n dó cho m t user khác Luu ý: Ð gán quy n, d i tu ng ph i thu c v schema c a user gán ho c c n có quy n WITH GRANT OPTION M c d nh n u m t object thu c v m t user dó user dó có d y d quy n d i tu ng dó Tu ch n WITH ADMIN OPTION không dùng cho vi c gán quy n cho Role Ví d : Ðang nh p v i tài kho n c a ngu i dùng scott password tiger, sau dó th c hi n c p quy n xem c p nh t d li u b ng Emp cho userTest GRANT select,update ON Emp to userTest; c Thu h i quy n d i tu ng S d ng cú pháp sau dây d l y l i quy n dã c p Cú pháp: REVOKE { object_priv [, object_priv ] |ALL [PRIVILEGES] } ON [schema.]object FROM {user|role|PUBLIC} [, {user|role|PUBLIC} ] [CASCADE CONSTRAINTS] V i: object_pri ALL Ch d nh quy n d i tu ng dã du c gán Thu h i toàn b quy n d i tu ng dã du c gán cho user ON Ch d nh d i tu ng dó quy n d i tu ng du c thu h i FROM Ch d nh user hay role b thu h i quy n CASCADE CONSTRAINTS Xoá t t c tham chi u mà vi c thu h i dã du c d nh nghia s d ng quy n REFERENCES hay ALL Ví d : Ðang nh p v i tài kho n c a ngu i dùng scott password tiger, sau dó th c hi n thu h i quy n c p nh t d li u b ng Emp t userTest REVOKE update ON Emp FROM userTest; d Thông tin v quy n Thông tin v quy n du c luu tr data dictionary Giáo trình th c hành H QTCSDL Trang 90 Khoa CNTT & TT - ÐHCT M t s thông tin ta c n quan tâm: DBA_TAB_PRIVS: GRANTEE, OWNER, TABLE_NAME, GRANTOR, PRIVILEGE, GRANTABLE DBA_COL_PRIVS: GRANTEE, OWNER, TABLE_NAME, COLUMN_NAME, GRANTOR, PRIVILEGE, GRANTABLE Ví d : DBA có th truy v n b ng DBA_TAB_PRIVS d l y thông tin v quy n d i tu ng du c gán cho user SELECT * FROM dba_tab_privs WHERE GRANTEE='userTest' Hình 26 Xem quy n dã c p cho userTest Qu n lý nhóm (ROLE) a Role database Oracle cung c p công c cho phép qu n lý m t cách d dàng quy n thông qua vi c s d ng nhóm (Role) Role m t nhóm quy n du c gán cho user hay Role khác Gi s b n có m t nhóm 1000 users du c c p quy n nhu nhau, ch ng l ph i c p quy n cho t ng user (vi c s l p l i 1000 l n !!!) ? Không, ta s t o m t role, c p quy n cho role dó gán role cho user Hình 27 Role database b Các tính ch t c a Role Giáo trình th c hành H QTCSDL Trang 91 Khoa CNTT & TT - ÐHCT Ðu c gán l y l i t user v i câu l nh Có th gán cho b t c user m t Role ngo i tr cho Có th bao g m c quy n h th ng (system privileges) quy n d i tu ng (object privileges) Role Có th enable disable Role du c gán cho user Có th yêu c u password c n enable Role Tên Role ph i nh t user dang t n t i tên Role dang t n t i Không thu c v b t c user không thu c v b t c schema c L i ích c a vi c s d ng Role Gi m công vi c gán quy n S d ng Role don gi n hoá vi c qu n lý Role, b ng cách gán m t t p quy n cho ngu i dùng Có th gán quy n cho m t Role sau dó gán Role dó cho user Qu n lý quy n m t cách linh d ng Khi thay d i quy n có m t Role quy n c a t t c user dã du c gán Role dó s b thay d i theo d QU N LÝ ROLE T o s a ch a Role Cú pháp: CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY }] V i: role_name NOT IDENTIFIED BY password EXTERNALLY tên c a Role ch d nh không c n ki m tra Role enable Role m t kh u ngu i dùng c n cung c p enable Role ch d nh user ph i du c xác l p b i d ch v bên (nhu h di u hành hay d ch v bên th ba) tru c enable Role Ví d : T o nhóm có tên K31Group CREATE ROLE StudentsGroup; S a ch a Role Cú pháp: ALTER ROLE role_name {NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY }}; V i: role_name NOT IDENTIFIED IDENTIFIED BY password EXTERNALLY tên c a Role c n thay d i ch d nh không c n xác nh n enable Role ch d nh c n xác nh n enable Role cung c p m t kh u xác nh n enable Role ch d nh user c n du c xác nh n b i d ch v bên (co ch xác nh n b i h di u hành) Giáo trình th c hành H QTCSDL Trang 92 Khoa CNTT & TT - ÐHCT C p quy n cho Role : Cú pháp gi ng nhu c a User (Xem l i ph n c p quy n cho user) Gán Role cho user Cú pháp : GRANT role_name [, role_name ] TO {user|role|PUBLIC} [, {user|role|PUBLIC} ] [WITH ADMIN OPTION] V i: role_name tên c a Role user tên c a user du c gán vào Role_name role tên c a Role du c gán vào Role_name PUBLIC Gán cho t t c user WITH ADMIN OPTION cho phép user du c gán Role có th gán Role cho user khác Ví d : GRANT StudentsGroup TO userTest; Thi t l p Role m c d nh M t user có th có nhi u Role du c gán Role m c d nh Role du c t d ng enable user log on vào database Thi t l p role m c d nh b ng câu l nh ALTER USER Cú pháp : ALTER USER user DEFAULT ROLE {role [,role] | ALL [EXCEPT role [,role] ] } V i: user role ALL EXCEPT tên c a user du c gán Role tên c a Role du c thi t l p m c d nh d t t t c Role du c gán cho user m c d nh ngo i tr Role n m sau m nh d EXCEPT ch d nh Role di sau m nh d không thu c vào Role m c d nh Ví d : ALTER USER usertest DEFAULT ROLE StudentsGroup; Vì Role c n du c gán tru c chúng có th du c thi t l p m c d nh nên không th kh i t o Role m c d nh s d ng câu l nh CREATE USER Thu h i Role t user S d ng cú pháp sau dây d thu h i Role t user Cú pháp : REVOKE role_name [, role_name ] Giáo trình th c hành H QTCSDL Trang 93 Khoa CNTT & TT - ÐHCT FROM {user|role|PUBLIC} [, {user|role|PUBLIC} ] V i: role_name user role PUBLIC tên tên tên thu c a user b c a h i Role c n thu h i thu h i Role Role b thu h i Role quy n hay Role t t t c user Ví d : Chuy n userTest kh i nhóm K30Group REVOKE StudentsGroup FROM userTest; Xoá Role Ð xoá Role t database s d ng câu l nh sau Cú pháp: DROP ROLE role_name; e Các Role du c d nh nghia s n Tên Role Di n gi i CONNECT RESOURCE Role cung c p s n d tuong thích v i phiên b n tru c dó DBA T t c quy n h th ng, có tu ch n: WITH ADMIN OPTION EXP_FULL_DATABASE Quy n export d li u c a database IMP_FULL_DATABASE Quy n import d li u vào database DELETE_CATALOG_ROLE Quy n xoá d li u EXECUTE_CATALOG_ROLE Quy n th c hi n m t th t c SELECT_CATALOG_ROLE Quy n l y d li u Các Role có tên DELETE_CATALOG_ROLE, EXCUTE_CATALOG_ROLE SELECT_CATALOG_ROLE cho phép th c hi n truy xu t t i views packages data dictionary Các Role có th gán cho user quy n DBA nhung mu n xem thông tin b ng view thu c data dictionary f Thông tin v role: Thông tin v Role du c l y data dictionary Có r t nhi u tables views ch a thông tin v quy n du c gán cho user Tên view Di n gi i DBA_ROLES T t c Role database DBA_ROLE_PRIVS Các Role dã du c gán quy n cho user hay Role khác ROLE_PRIVS Các Role dã du c gán quy n cho Role khác DBA_SYS_PRIVS Quy n h th ng gán cho user hay Role Giáo trình th c hành H QTCSDL Trang 94 Khoa CNTT & TT - ÐHCT ROLE_SYS_PRIVS Quy n h th ng gán cho Role ROLE_TAB_PRIVS Quy n table du c gán cho Role SESSION_ROLES Các Role du c phép c a user hi n th i Ví d : Xem thông tin v quy n c p phát cho user SELECT Role, password_required FROM dba_Roles; III PH N BÀI T P CÓ HU NG D N T o ngu i dùng tuong ng Test_, m t kh u gi ng tên ( dây s s d ng mã s sinh viên 1940542) T o user CREATE USER Test_1940542 IDENTIFIED BY Test_1940542; Th s d ng user v a t o d dang nh p vào h th ng, b n s b thông báo l i tuong t nhu du i dây, chua c p quy n Create Session (quy n cho phép user k t n i vào CSDL) cho user Hình 28 L i dang nh p chua có quy n k t n i d n CSDL C p quy n Create Session cho user Test_1940542 GRANT CREATE SESSION TO Test_1940542; Bây gi th dang nh p l i, OK? Ngu i dùng Test_1940542 du c phép k t n i vào CSDL, nhung vi c nh t mà user có th th c hi n thay d i password c a anh ta, chua làm du c b t c vi c khác Thay d i m t kh u cho user th xem ALTER USER Test_1940542 IDENTIFIED BY p1940542; Bây gi th dang nh p l i v i m t kh u m i Giáo trình th c hành H QTCSDL Trang 95 Khoa CNTT & TT - ÐHCT T o m t ngu i dùng khác tên Test1_1940542 v i Quota 2M d cho phép ngu i dùng t o b ng schema c a Ðang nh p h th ng v i vai trò c a DBA d t o user Test1_1940542 CREATE USER Test1_1940542 IDENTIFIED BY Test1_1940542 DEFAULT TABLESPACE USERS QUOTA 2M ON USERS; C p quy n Create Session cho user Test1_1940542 GRANT CREATE SESSION TO Test1_1940542; C p quy n h th ng cho user d du c phép t o b ng du c phép c p l i quy n cho nh ng user khác GRANT CREATE TABLE TO Test1_1940542 WITH ADMIN OPTION; Ðang nh p v i user v a t o d th t o m t b ng, nh p d li u truy xu t xem CREATE TABLE Student( SID char(7), SName Varchar2(30)); INSERT INTO Student VALUES('1940000','Phung Phung Phi'); INSERT INTO Student VALUES('1940001','Tao Tung Thieu'); SELECT * FROM STUDENT; !!! T i user Test1_1940542 l i có quy n INSERT, SELECT ta chua c p quy n nh ??? Ðon gi n m c nhiên s có toàn quy n d i tu ng mà v a t o (s h u - Owner) C p quy n cho user Test_1940542 truy c p vào b ng student (trong schema c a Test1_1940542 ) v a t o câu ta dã t o user tên Test_1940542 nhung user chua có quy n c , th dang nh p l i v i user truy xu t b ng Student xem: SELECT * FROM Test1_1940542.Student; B báo l i dúng không? Vì chua có quy n mà! Bây gi dang nh p l i v i user Test1_1940542 c p quy n SELECT, UPDATE cho user Test_1940542 (B n dang dang nh p v i user ch s h u c a b ng Student) GRANT SELECT, UPDATE ON student TO Test_1940542; Ðang nh p l i v i user Test_1940542 truy xu t b ng Student xem Giáo trình th c hành H QTCSDL Trang 96 Khoa CNTT & TT - ÐHCT SELECT * FROM Test1_1940542.Student; Ðu c phép r i! Th th c hi n l nh xem: DELETE FROM Test1_1940542.Student; Ch c ch n b l i, user ch có quy n SELECT UPDATE thôi! T o nhóm (role), c p quy n cho nhóm thêm ngu i dùng vào nhóm v a t o Gi s l p tin h c K30 có 150 sinh viên th c hành môn Oracle Các sinh viên d u có quy n gi ng du c phép k t n i d n CSDL, t o b ng, t o th t c, t o trigger Chúng ta s th c hi n v n d nhu sau (Ðang nh p v i vai trò c a DBA): T o ngu i dùng (th t o users) CREATE USER user1 IDENTIFIED BY user1 DEFAULT TABLESPACE USERS QUOTA 1M ON USERS; CREATE USER user2 IDENTIFIED BY user2 DEFAULT TABLESPACE USERS QUOTA 1M ON USERS; T o nhóm (role) có tên TTOracle CREATE ROLE TTOracle; C p quy n k t n i CSDL, t o b ng, t o th t c, t o trigger cho nhóm TTOracle GRANT CREATE SESSION, CREATE TABLE, CREATE PROCEDURE, CREATE TRIGGER TO TTOracle; C p quy n cho sinh viên vào nhóm (dua user vào nhóm) GRANT TTOracle TO user1,user2; Th dang nh p b ng m t user v a t o d t o b ng xem có du c chua Thu h i quy n dã c p Thu h i quy n UPDATE b ng student c a user Test_1940542 dã t o câu REVOKE UPDATE ON Student FROM Test_1940542; Lo i user2 kh i nhóm THOracle REVOKE THOracle from user2; IV PH N BÀI T P T LÀM Tang Quota cho user1 user2 câu thành 2M Thu h i quy n Create Trigger c a nhóm THOracle B sung thêm quy n T o role, t o user cho nhóm THOracle Giáo trình th c hành H QTCSDL Trang 97 Khoa CNTT & TT - ÐHCT M CL C PH N T NG QUAN I M C ÐÍCH YÊU C U II N I DUNG C T LÕI III KI N TH C TIÊN QUY T IV PHUONG PHÁP H C T P PH N CO B N V ORACLE I M t vài khái ni m du c s d ng Oracle 10g II C u trúc co s d li u Oracle III Không gian d li u (tablespace) b ng d li u (table) IV ki u d li u Oracle: V Privileges roles VI Ng i dùng 10 VII Import export 10 VIII K T N I V I Oracle Net 11 PH N BÀI T P TH C HÀNH 13 BÀI 13 I M C ÍCH 13 II LÝ THUY T 13 III BÀI T P CÓ H IV BÀI T P T NG D N 16 LÀM 21 BÀI 22 I M C ÐÍCH 22 II LÝ THUY T 22 III CÁC L I THU NG G P TRONG SQL: 22 IV BÀI T P CÓ HU NG D N: 23 V BÀI T P T LÀM: 27 BÀI 29 I M C ÐÍCH 29 II LÝ THUY T 29 III BÀI T P CÓ HU NG D N: 30 IV BÀI T P T LÀM: 34 BÀI 36 I M C ÐÍCH: 36 II LÝ THUY T: 36 III BÀI T P CÓ HU NG D N 36 Giáo trình th c hành H QTCSDL Trang 98 Khoa CNTT & TT - ÐHCT IV BÀI T P T LÀM 40 BÀI 41 I M C ÐÍCH: 41 II LÝ THUY T: 41 III BÀI T P CÓ HU NG D N: 42 IV BÀI T P T LÀM 46 BÀI 48 I M C ÐÍCH: 48 II BÀI T P T LÀM 48 BÀI 50 I M c tiêu: 50 II LÝ THUY T 50 III BÀI T P CÓ HU NG D N 65 IV PH N BÀI T P T làm 71 BàI 72 I M c tiêu: 72 II LÝ THUY T 72 III Th t c 73 IV Hàm 74 V Triggers 75 VI Ph n t p có hu ng d n 79 VII Ph n t p t làm 82 BàI 83 I M c tiêu: 83 II LÝ THUY T 83 III Ph n t p có hu ng d n 95 IV Ph n t p t làm 97 M C L C 98 Giáo trình th c hành H QTCSDL Trang 99 [...]... c2.TINH_THANH; Giáo trình th c hành H QTCSDL Trang 33 Khoa CNTT & TT - ÐHCT h Tìm các c p tên c a các công nhân có làm vi c chung v i nhau trong ít nh t là hai công trình Phân tích câu h i: Tru c h t ta ph i dùng m t select d tìm các c p h tên công nhân có tham gia cùng công trình Sau dó dùng m t select th hai truy xu t t k t qu c a select th nh t d nhóm t ng c p công nhân l i và d m s công trình h tham... TCP/IP, có c ng m c d nh 1521 Ngoài ra, d i v i l p trình viên và qu n tr viên, ng d ng phía trình khách (application client) là ng d ng c a nhà phát tri n th ba (third party), cung c p m t giao di n tuong tác thân thi n v i h qu n tr Oracle Hi n nay, các ng d ng này du c phát tri n r t nhi u trên th gi i nhu Maestro, SQL Navigator, Oracle SQL developer… Giáo trình th c hành H QTCSDL Trang 12 Khoa CNTT &... chuong trình Oracle SQL Developer, dây là m t chuong trình du c phát tri n trên n n Java l n ch y d u tiên, chuong trình yêu c u xác l p du ng d n d n t p tin java.exe (yêu c u JDK phiên b n 1.5 tr lên) nhu hình du i dây Hình 14 Xác l p du ng d n d n t p tin java.exe Click vào OK, giao di n SQL Developer hi n ra nhu sau: Hình 15 Giao di n SQL Developer Giáo trình th c hành H QTCSDL Trang 18 Khoa CNTT & TT... http://www.ora-code.com Giáo trình th c hành H QTCSDL Trang 22 Khoa CNTT & TT - ÐHCT IV BÀI T P CÓ HU NG D N: 1 CSDL: Qu n lý công trình (CSDL1) B ng 1 KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KTS) M i ki n trúc su có m t h tên, m t nam sinh, phai, noi t t nghi p, d a ch liên l c Gi s không có hai ki n trúc su trùng tên B ng 2 CHUTHAU(TEN_THAU, TEL, DCHI_THAU) M i ch th u xây d ng công trình d u có... có nhi u công nhân tham gia Khi m t công nhân tham gia vào m t công trình nào dó s du c ghi nh n l i ngày b t d u tham gia và s ngày tham gia B ng 7 THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) M t ki n trúc su có th thi t k nhi u công trình, m i công trình cung có th do nhi u ki n trúc su cùng thi t k Khi m t ki n trúc su thi t k m t công trình s có m t thù lao tuong ng 2 Yêu c u 1: Tìm s thông thuong gi... các s báo Giáo trình th c hành H QTCSDL Trang 27 Khoa CNTT & TT - ÐHCT j Cho bi t th lo i c a các bài báo do các tác gi có h Lê sáng tác k Tìm t a các bài tho dã du c dang trên các báo/t p chí trong tu n l t 23/4/95 d n 30/4/95 l Tìm tên các tác gi du c dang bài trên báo C u Chi n Binh m Tìm tên nh ng báo/t p chí có dang xã lu n In ra tên các bài xã lu n dó và các s báo/t p chí tuong ng Giáo trình th... không? d Cho bi t tên c a các ch th u dã thi công các công trình có kinh phí l n hon t t c các công trình do ch th u Phòng D ch v S Xây d ng thi công Phân tích câu h i: Tru c h t ta ph i dùng m t select d tìm t t c các kinh phí c a các công trình do ch th u Phòng d ch v s xây d ng thi công Sau dó m t select th 2 d tìm các ch th u thi công các công trình l n hon t t c các kinh phí này Ta th y hai câu select... thông qua listener module, m t ti n trình d c l p c a máy ch CSDL Listener nh n các yêu c u k t n i c a trình khách và qu n lý vi c d n du ng d n máy ch M i khi trình khách yêu c u k t n i, listener nh n yêu c u này N u thông tin cung c p b i trình khách tuong ng v i các thông tin c a listener, trình khách du c phép truy c p d n máy ch 2 Mô hình Client-Server i v i client, database là m t d ch v... n lý môi tru ng m ng c a Oracle d dàng hon Thi t l p net service name M chuong trình Oracle Net Manager (Start Programs Oracle Configuration and Migration Tools Net Manager) Vào m c Local Service naming Hình 7 Oracle Net Manager Ch n m c Service Naming, kích chu t vào d u các thông s th c hi n k t n i v i server CSDL Giáo trình th c hành H QTCSDL pane bên trái d t o m t net service name v i Trang 16... trình d u có m t tên ch nhân và m t d a ch Gi s không có hai ch nhân trùng tên B ng 4 CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) M i công nhân tham gia xây d ng các công trình d u có m t h tên, m t nam sinh, m t nam vào ngh , và m t chuyên môn nào dó Gi s không có hai công nhân trùng h tên B ng 5 CGTRINH(STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) M i công trình

Ngày đăng: 15/05/2016, 23:57

Từ khóa liên quan

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

Tài liệu liên quan