YOMEDIA
ADSENSE
Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 3
69
lượt xem 11
download
lượt xem 11
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Mỗi ng−ời dùng đ−ợc gán một profile xác định giới hạn trên các tμi nguyên hệ thống mμ ng−ời đó đ−ợc phép sử dụng, gồm có: - Tổng số các phiên lμm việc có thể thiết lập - Thời gian xử lý của CPU cho: - Phiên lμm việc của ng−ời dùng đó - Yêu cầu với Oracle phát sinh từ các câu lệnh SQL - Tổng số vμo/ra logic đ−ợc phép đối với: - Phiên lμm việc của ng−ời dùng đó - Yêu cầu với Oracle phát sinh từ các câu lệnh SQL ...
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 3
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i Profiles vμ giíi h¹n tμi nguyªn Mçi ng−êi dïng ®−îc g¸n mét profile x¸c ®Þnh giíi h¹n trªn c¸c tµi nguyªn hÖ thèng mµ ng−êi ®ã ®−îc phÐp sö dông, gåm cã: Tæng sè c¸c phiªn lµm viÖc cã thÓ thiÕt lËp Thêi gian xö lý cña CPU cho: Phiªn lµm viÖc cña ng−êi dïng ®ã Yªu cÇu víi Oracle ph¸t sinh tõ c¸c c©u lÖnh SQL Tæng sè vµo/ra logic ®−îc phÐp ®èi víi: Phiªn lµm viÖc cña ng−êi dïng ®ã Yªu cÇu víi Oracle ph¸t sinh tõ c¸c c©u lÖnh SQL Tæng thêi gian ch¹y kh«ng t¶i mµ phiªn lµm viÖc ®−îc phÐp Tæng thêi gian kÕt nèi mµ phiªn lµm viÖc ®−îc phÐp Giíi h¹n mËt khÈu: Sè lÇn nhËp sai mËt khÈu tr−íc khi Account bÞ kho¸ Thêi h¹n hiÖu lùc mËt khÈu vµ sè lÇn ®−îc gia h¹n Sö dông l¹i mËt khÈu vµ c¸c h¹n chÕ phøc hîp Cã thÓ t¹o c¸c profile kh¸c nhau vµ g¸n cho tõng ng−êi dïng. Profile ngÇm ®Þnh ®−îc ®Æt ra cho tÊt c¶ mäi ng−êi nh−ng kh«ng g¸n cho ng−êi dïng nµo. §Æc tÝnh giíi h¹n tµi nguyªn tr¸nh sö dông v−ît qu¸ tµi nguyªn toµn côc cña hÖ thèng. L−u vÕt Oracle cho phÐp l−u vÕt cã lùa chän ®èi víi c¸c thao t¸c cña ng−êi sö dông ®Ó hç trî trong viÖc ®iÒu tra xem xÐt c¸c hµnh ®éng ®¸ng ngê trong sö dông CSDL. L−u vÕt cã thÓ sö dông ë 3 møc kh¸c nhau: L−u vÕt lÖnh, l−u vÕt quyÒn, l−u vÕt ®èi t−îng l−îc ®å L−u vÕt lÖnh Lµ qu¸ tr×nh l−u vÕt c¸c lÖnh SQL nµo ®ã mµ kh«ng cÇn quan t©m ®Õn tªn ®èi t−îng cô thÓ (ngoµi ra, trigger cña Oracle còng cho phÐp më réng vµ tuú biÕn kh¶ n¨ng theo dâi nµy) L−u vÕt lÖnh cã thÓ ¸ dông réng r·i cho tÊt c¶ ng−êi dïng hay chØ mét vµi ng−êi dïng nµo ®ã. VÝ dô: theo dâi thêi gian kÕt nèi vµ kÕt thóc cña ng−êi dïng SCOTT vµ LORI L−u vÕt quyÒn Lµ l−u vÕt sö dông c¸c quyÒn hÖ thèng mµ kh«ng ph¶i quan t©m truy nhËp ®Õn tªn ®èi t−îng cô thÓ. Nã còng cã thÓ ¸p dông réng rµi cho tÊt c¶ ng−êi dïng hay chØ cho mét sè ng−êi dïng nhÊt ®Þnh. L−u vÕt ®èi Lµ l−u vÕt truy cËp ®Õn c¸c ®èi t−îng x¸c ®Þnh mµ kh«ng cÇn quan t−îng l−îc ®å t©m ®Õn ng−êi truy cËp. Nã theo dâi c¸c lÖnh ®· ®−îc g¸n quyÒn truy cËp ®èi t−îng ®ã, kiÓu nh− SELECT hoÆc DELETE trªn b¶ng nµo ®ã §èi víi tÊt c¶ c¸c kiÓu l−u vÕt, Oracle cho phÐp l−u vÕt riªng ®èi víi c¸c lÖnh ®· thùc hiÖn thµnh c«ng, kh«ng thµnh c«ng hoÆc c¶ 2. §iÒu ®ã cho phÐp theo dâi c¸c lÖnh nghi ngê, kh«ng quan t©m ®Õn viÖc ng−êi dïng thùc hiÖn lÖnh ®ã cã quyÒn hay kh«ng. KÕt qu¶ cña thao t¸c l−u vÕt ®−îc l−u vµo mét b¶ng l−u dÊu. Mét sè view ®· ®−îc ®Þnh nghÜa s½n cho phÐp ng−êi dïng cã thÓ xem l¹i c¸c th«ng tin l−u trong b¶ng nµy. http://www.ebook.edu.vn 31
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i Database Backup and Recovery Truy nhËp d÷ liÖu PhÇn nµy giíi thiÖu nh÷ng qui t¾c chung cña Oracle ®èi víi hÖ qu¶n trÞ CSDL: Tu©n thñ c¸c chuÈn c«ng nghiÖp cho ng«n ng÷ truy nhËp d÷ liÖu §iÒu khiÓn vµ duy tr× tÝnh nhÊt qu¸n th«ng tin trong CSDL trong khi thao t¸c víi d÷ liÖu Cung cÊp mét hÖ thèng ph−¬ng thøc ®Þnh nghÜa vµ ®¶m b¶o nh÷ng rµng buéc nh»m duy tr× sù toµn vÑn th«ng tin trong CSDL Cung cÊp hiÖu n¨ng cao CÊu tróc ng«n ng÷ truy vÊn SQL SQL lµ mét ng«n ng÷ ®¬n gi¶n vµ m¹nh dïng ®Ó truy nhËp CSDL, nã lµ mét ng«n ng÷ chuÈn cho hÖ thèng CSDL quan hÖ. SQL do Oracle x©y dùng hoµn toµn t−¬ng thÝch víi chuÈn ANSI/ISO vÒ ngån ng÷ SQL. C¸c c©u lÖnh SQL Mäi thao t¸c xö lý th«ng tin trong CSDL Oracle ®−îc thùc hiÖn th«ng qua c¸c c©u lÖnh SQL. Mçi lÖnh SQL lµ nh÷ng chuçi v¨n b¶n chuyÓn cho Oracle thùc hiÖn. C©u lÖnh ph¶i hoµn toµn t−¬ng ®−¬ng víi c©u hoµn chØnh trong SQL nh−: SELECT ename, deptno FROM emp; ChØ nh÷ng lÖnh SQL hoµn chØnh míi ®−îc thùc hiÖn, ng−îc l¹i c©u kh«ng ®Çy ®ñ nh− vÝ dô d−íi, sÏ ph¸t sinh lçi vµ ®ßi hái ph¶i ®Çy ®ñ tr−íc khi c©u lÖnh SQL cã thÓ thùc hiÖn: SELECT ename C©u lÖnh SQL cã thÓ coi lµ rÊt ®¬n gi¶n, nh−ng rÊt m¹nh trong c¸c ch−¬ng tr×nh m¸y tÝnh hay c¸c chØ thÞ. C©u lÖnh SQL ®−îc ph©n chia thµnh nh÷ng líp sau: Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data definition language (DDL)) Ng«n ng÷ thao t¸c víi d÷ liÖu (Data manipulation language (DML)) C©u lÖnh ®iÒu khiÓn giao dÞch C©u lÖnh ®iÒu khiÓn phiªn lµm viÖc C©u lÖnh ®iÒu khiÓn hÖ thèng C©u lÖnh nhóng SQL Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language (DDL)) C¸c lÖnh DDL ®Þnh nghÜa, duy tr× vµ xo¸ c¸c ®èi t−îng l−îc ®å khi chóng kh«ng cßn http://www.ebook.edu.vn 32
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i cÇn thiÕt. Bao gåm lÖnh cÊp quyÒn cho User hay quyÒn truy nhËp CSDL vµ nh÷ng ®èi t−îng cô thÓ trong CSDL Ng«n ng÷ thao t¸c víi CSDL (Data Manipulation Language (DML) ) C¸c lÖnh DML thao t¸c xö lý d÷ liÖu trong CSDL. VÝ dô: Truy vÊn, thªm, cËp nhËt vµ xo¸ nh÷ng b¶n ghi lµ tÊt c¶ c¸c thao t¸c cÇn cã trong DML; kho¸ b¶ng hay view vµ kh¶o s¸t nh÷ng kÕ ho¹ch thùc hiÖn cña nh÷ng lÖnh SQL còng thuéc vÒ c¸c thao t¸c DML. C¸c lÖnh ®iÒu khiÓn giao dÞch (Transaction Control Statement) C¸c lÖnh ®iÒu khiÓn giao dÞch qu¶n lý nh÷ng thay ®æi bëi lÖnh DML. Cho phÐp ng−êi dïng hay nh÷ng ng−êi ph¸t triÓn øng dông nhãm thay ®æi thµnh giao dÞch logic. VÝ dô: COMMIT, ROLLBACK, vµ SAVEPOINT. C¸c lÖnh ®iÒu khiÓn phiªn lμm viÖc(Session Control Statement) C¸c lÖnh ®iÒu khiÓn phiªn lµm viÖc cho phÐp user ®iÒu khiÓn thuéc tÝnh cña phiªn lµm viÖc hiÖn t¹i, bao gåm cho phÐp hay kh«ng cho phÐp nhãm quyÒn vµ ®Æt nh÷ng thay ®æi ng«n ng÷. Cã hai lÖnh ®iÒu khiÓn phiªn lµm viÖc ALTER SESSION vµ SET ROLE. C¸c lÖnh ®iÒu khiÓn hÖ thèng (System Control Statement) LÖnh ®iÒu khiÓn hÖ thèng thay ®æi thuéc tÝnh Instance cña Oracle server. ChØ cã mét lÖnh ®iÒu khiÓn hÖ thèng lµ ALTER SYSTEM; nã cho phÐp thay ®æi nh− lµ ®Æt sè l−îng server dïng chung tèi thiÓu, xo¸ mét phiªn lµm viÖc, vµ lµm nh÷ng viÖc kh¸c. LÖnh nhóng (Embedded SQL Statement) LÖnh nhóng SQL kÕt hîp DDL, DML vµ nh÷ng lÖnh ®iÒu khiÓn giao dÞch ë c¸c ch−¬ng tr×nh cã ng«n ng÷ h−íng thñ tôc (chóng sö dông cïng víi bé tiÒn biªn dÞch Oracle) vÝ dô gåm: OPEN, CLOSE, FETCH, vµ EXECUTE. C¸c giao dÞch (Transaction) Giao dÞch lµ ®¬n vÞ logic cña c«ng viÖc bao gåm mét hay nhiÒu lÖnh SQL thùc hiÖn bëi cïng mét User. Theo chuÈn SQL ANSI/ISO, mét giao dÞch b¾t ®Çu khi thùc hiÖn lÖnh SQL ®Çu tiªn cña ng−êi sö dông. Giao dÞch kÕt thóc khi khai b¸o commit hay rollback (c¶ hai thuËt ng÷ nµy ®−îc th¶o luËn ë phÇn sau) bëi User. Xem xÐt mét CSDL ng©n hµng. Khi kh¸ch hµng chuyÓn tiÒn tõ tµi kho¶n tiÕt kiÖm vµo tµi kho¶n kiÓm tra, giao dÞch ph¶i bao gåm 3 thao t¸c riªng: gi¶m sè tiÒn tiÕt kiÖm, t¨ng sè tµi kho¶n kiÓm tra, ghi nhËn giao dÞch trong nhËt ký. Oracle ph¶i b¶o ®¶m r»ng c¶ 3 lÖnh SQL ®Òu ®−îc thùc hiÖn ®Ó b¶o ®¶m tµi kho¶n ®−îc c©n ®èi ®óng. Khi cã ®iÒu g× ®ã ng¨n c¶n mét trong 3 lÖnh trong giao dÞch (nh− lµ phÇn cøng lçi), th× nh÷ng lÖnh kh¸c cña giao dÞch ph¶i bÞ huû bá; qu¸ tr×nh nµy ®−îc gäi lµ rolling back. NÕu nh− lçi x¶y ra trong bÊt cø thao t¸c cËp nhËt nµo th× kh«ng thùc hiÖn c¸c thao t¸c cËp nhËt kh¸c. H×nh 1-5 minh ho¹ vÝ dô giao dÞch ë ng©n hµng http://www.ebook.edu.vn 33
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i Figure 1-5 A Banking Transaction Commit & Roll Back c¸c giao dÞch Nh÷ng thay ®æi t¹o bëi nh÷ng lÖnh SQL thiÕt lËp thµnh mét giao dÞch cã thÓ x¸c nhËn (commit) hay huû bá (roll back). Sau khi giao dÞch ®−îc commit hay roll back, giao dÞch tiÕp theo b¾t ®Çu víi lÖnh SQL tiÕp theo X¸c nhËn mét giao dÞch ghi nhËn l¹i nh÷ng thay ®æi nhËn ®−îc tõ tÊt c¶ c¸c lÖnh SQL trong giao dÞch ®ã. ChØ sau khi giao dÞch ®−îc x¸c nhËn (commit) th× sù thay ®æi bëi nh÷ng lÖnh SQL cña giao dÞch ®ã míi trë nªn 'cã thÓ thÊy ®−îc' víi nh÷ng ng−êi dïng kh¸c. Huû bá mét giao dÞch lµ rót l¹i mäi thay ®æi tõ nh÷ng lÖnh SQL trong giao dÞch. Sau khi giao dÞch bÞ huû bá, d÷ liÖu kh«ng bÞ thay ®æi gièng nh− khi c¸c lÖnh cña giao dÞch nµy ch−a bao giê ®−îc thùc hiÖn. Savepoints - C¸c ®iÓm ®¸nh dÊu giao dÞch Víi nh÷ng giao dÞch dµi bao gåm nhiÒu c©u lÖnh SQL, cã thÓ khai b¸o c¸c ®iÓm ®¸nh dÊu. §iÓm ®¸nh dÊu ®−îc sö dông ®Ó chia nh÷ng giao dÞch thµnh nh÷ng phÇn nhá h¬n B»ng viÖc sö dông ®iÎm ®¸nh dÊu, b¹n cã thÓ tuú ý ®¸nh dÊu c«ng viÖc ë bÊt k× thêi ®iÓm nµo trong mét giao dÞch dµi. §iÒu ®ã cho phÐp sau ®ã cã thÓ lùa chän quay l¹i tõ ®iÓm hiÖn thêi trong giao dÞch ®Õn mét ®iÓm ®¸nh dÊu nµo ®ã ®· khai b¸o. VÝ dô: B¹n cã thÓ sö dông ®iÓm ®¸nh dÊu trong mét lo¹t c¸c c©u lÖnh cËp nhËt phøc t¹p, sau ®ã nÕu nh− cã lçi b¹n kh«ng cÇn thiÕt ph¶i thùc hiÖn l¹i tÊt c¶ c¸c lÖnh. Sö dông giao dÞch ®Ó ®¶m b¶o tÝnh nhÊt qu¸n cña d÷ liÖu Giao dÞch cung cÊp cho ng−êi sö dông hay nhµ ph¸t triÓn øng dông kh¶ n¨ng thay ®æi http://www.ebook.edu.vn 34
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i mét c¸ch nhÊt qu¸n víi d÷ liÖu gièng nh− khi c¸c lÖnh SQL trong giao dÞch ®−îc nhãm l¹i mét c¸ch logic Giao dÞch nªn chøa tÊt c¶ c¸c thµnh phÇn cÇn thiÕt cho mét ®¬n vÞ c«ng viÖc logic, kh«ng h¬n kh«ng kÐm. D÷ liÖu trong tÊt c¶ c¸c b¶ng liªn quan ph¶i trong tr¹ng th¸i nhÊt qu¸n tr−íc khi giao dÞch b¾t ®Çu vµ sau khi kÕt thóc. C¸c giao dÞch chØ nªn chøa nh÷ng lÖnh SQL t¹o ra mét thay ®æi nhÊt qu¸n trong d÷ liÖu. VÝ dô: trë l¹i vÝ dô vÒ giao dÞch ng©n hµng. ChuyÓn tiÒn gi÷a hai tµi kho¶n, giao dÞch nªn bao gåm c¶ viÖc t¨ng tµi kho¶n nµy (mét c©u lÖnh SQL), vµ viÖc gi¶m tµi kho¶n kia (mét lÖnh SQL), vµ ghi nhËn giao dÞch trong nhËt ký (mét lÖnh SQL). Mäi hµnh ®éng ph¶i cïng thÊt b¹i hoÆc cïng thµnh c«ng, kh«ng nªn x¸c nhËn tÝn dông mµ l¹i kh«ng ghi nî. Nh÷ng hµnh ®éng kh¸c kh«ng liªn quan, nh− lµ tiÒn míi göi vµo mét tµi kho¶n kh«ng nªn gép chung vµo giao dÞch trªn; chóng nªn ®Æt thµnh nh÷ng giao dÞch kh¸c PL/SQL PL/SQL lµ më réng ng«n ng÷ h−íng thñ tôc cña Oracle víi SQL. PL/SQL kÕt hîp SQL mét c¸ch dÔ dµng vµ linh ho¹t víi hµm, thñ tôc cña ng«n ng÷ ch−¬ng tr×nh cã cÊu tróc nh− lµ IF ... THEN, WHILE, vµ LOOP. Khi thiÕt kÕ øng dông CSDL, ng−êi ph¸t triÓn nªn quan t©m ®Õn nh÷ng lîi Ých khi sö dông store PL/SQL Bëi v× code PL/SQL cã thÓ ®−îc l−u ë CSDL, do vËy gi¶m giao thøc m¹ng gi÷a c¸c øng dông vµ CSDL, t¨ng hiÖu n¨ng hÖ thèng. Truy nhËp d÷ liÖu cã thÓ ®−îc ®iÒu khiÓn bëi code cña store PL/SQL. Trong tr−êng hîp nµy, ng−êi sö dông PL/SQL chØ cã thÓ truy nhËp d÷ liÖu theo chñ ý cña ng−êi lËp tr×nh (trõ tr−êng hîp ®−îc g¸n mét quyÒn truy nhËp kh¸c). C¸c khèi PL/SQL cã thÓ ®−îc göi tõ øng dông tíi CSDL, thùc hiÖn c¸c to¸n tö phøc t¹p mµ kh«ng g©y qu¸ t¶i cho truyÒn th«ng trªn m¹ng . ThËm chÝ khi PL/SQL kh«ng l−u trªn CSDL, c¸c øng dông cã thÓ göi c¸c khèi PL/SQL tíi CSDL thay v× c¸c c©u lÖnh SQL riªng, ®iÒu nµy lµm gi¶m l−u l−îng truyÒn th«ng trªn m¹ng. Nh÷ng phÇn sau miªu t¶ nh÷ng ®¬n vÞ ch−¬ng tr×nh kh¸c cã thÓ ®Þnh nghÜa vµ l−u tr÷ ë CSDL C¸c thñ tôc vμ c¸c hμm C¸c thñ tôc vµ hµm bao gåm tËp c¸c lÖnh SQL, PL/SQL mµ ®−îc nhãm cïng víi nhau nh− lµ mét ®¬n vÞ ®Ó gi¶i quyÕt nh÷ng vÊn ®Ò nhÊt ®Þnh vµ thùc hiÖn tËp nh÷ng c«ng viÖc liªn quan ®Õn nhau. Thñ tôc ®−îc t¹o vµ l−u tr÷ ë d¹ng biªn dÞch trong CSDL vµ cã thÓ ®−îc thùc hiÖn bëi ng−êi sö dông hay øng dông CSDL Thñ tôc vµ hµm t−¬ng tù nhau ngo¹i trõ hµm lu«n tr¶ vÒ gi¸ trÞ khi gäi, cßn thñ tôc th× kh«ng http://www.ebook.edu.vn 35
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i C¸c gãi (Package) C¸c gãi cung cÊp mét ph−¬ng thøc bao gãi vµ l−u nh÷ng thñ tôc cã liªn quan, c¸c hµm c¸c biÕn, vµ c¸c gãi kh¸c cã cÊu tróc nh− lµ ®¬n vÞ trong CSDL. Trong khi c¸c gãi cho phÐp ng−êi qu¶n trÞ hay nhµ ph¸t triÓn øng dông kh¶ n¨ng tæ chøc c¸c chøc n¨ng, nã còng gióp lµm t¨ng tÝnh n¨ng (vÝ dô nh− biÕn toµn côc cã thÓ ®−îc khai b¸o vµ sö dông ë bÊt k× thñ tôc nµo trong gãi) vµ hiÖu n¨ng (vÝ dô: Mäi ®èi t−îng trong gãi ®−îc dÞch vµ t¶i vµo bé nhí mét lÇn) Nh÷ng Trigger CSDL Oracle cho phÐp viÕt nh÷ng thñ tôc ®−îc b»ng PL/SQL, Java, hay C ®−îc kÝch ho¹t mçi khi b¶ng hay view bÞ thay ®æi, hoÆc lµ khi hµnh ®éng cña User hay cña hÖ thèng CSDL x¶y ra. Nh÷ng thñ tôc nµy ®−îc gäi lµ nh÷ng trigger cña CSDL C¸c trigger CSDL cã thÓ ®−îc sö dông b»ng nhiÒu c¸ch cho th«ng tin qu¶n lý cña CSDL. VÝ dô, chóng cã thÓ ®−îc sö dông ®Ó tù ®éng ph¸t sinh d÷ liÖu, l−u vÕt thay ®æi cña d÷ liÖu, ®¶m b¶o c¸c rµng buéc d÷ liÖu, vµ tuú biÕn c¸c quyÒn b¶o mËt phøc t¹p. C¸c ph−¬ng thøc (Method) Ph−¬ng thøc lµ thñ tôc hay hµm, do ng−êi sö dông ®Þnh nghÜa (kiÓu ®èi t−îng, nh÷ng b¶ng lång nhau hay biÕn m¶ng) Ph−¬ng thøc kh¸c store procedure ë hai ®iÓm: B¹n gäi ph−¬ng thøc b»ng viÖc tham chiÕu ®Õn ®èi t−îng cña kiÓu liªn quan Ph−¬ng thøc truy nhËp ®−îc toµn bé c¸c thuéc tÝnh cña ®èi t−îng cña kiÓu liªn quan vµ tíi th«ng tin vÒ kiÓu cña nã Mäi kiÓu do ng−êi dïng ®Þnh nghÜa ®Òu cã mét ph−¬ng thøc khëi t¹o do hÖ thèng ®Þnh nghÜa, ®ã lµ ph−¬ng thøc t¹o ra mét ®èi t−îng míi theo kiÓu d÷ liÖu ®· chØ ra. Tªn ph−¬ng thøc khëi t¹o trïng tªn víi kiÓu do ng−êi dïng ®Þnh nghÜa. Trong tr−êng hîp lµ kiÓu ®èi t−îng, c¸c tham sè cña ph−¬ng thøc khëi t¹o cã tªn vµ kiÓu cña nh÷ng thuéc tÝnh cña ®èi t−îng ®ã. Ph−¬ng thøc khëi t¹o lµ mét hµm tr¶ vÒ ®èi t−îng míi qua gi¸ trÞ cña nã. Nh÷ng m¶ng vµ b¶ng lång nhau còng cã ph−¬ng thøc khëi t¹o nh− vËy. So s¸nh nh÷ng ph−¬ng thøc ®Þnh nghÜa bËc quan hÖ gi÷a nh÷ng ®èi t−îng cña mét kiÓu ®èi t−îng ®· cho, ¸nh x¹ ph−¬ng thøc sö dông kh¶ n¨ng cña Oracle ®èi chiÕu víi nh÷ng kiÓu cã s½n. VÝ dô Oracle cã thÓ ®èi chiÕu hai h×nh ch÷ nhËt bëi viÖc so s¸nh diÖn tÝch cña chóng nÕu nh− kiÓu ®èi t−îng ®−îc gäi lµ RECTANGLE cã hai thuéc tÝnh HEIGHT vµ WIDTH vµ b¹n ®Þnh nghÜa ph−¬ng thøc ¸nh x¹ diÖn tÝch tr¶ vÒ mét sè, tªn lµ tÝch sè thuéc tÝnh HEIGHT vµ WIDTH, bËc ph−¬ng thøc ®−îc sö dông tù nã so s¸nh logÝc víi hai kiÓu ®èi t−îng. Nã tr¶ vÒ gi¸ trÞ d−íi d¹ng m· bËc quan hÖ. VÝ dô, cã thÓ tr¶ vÒ -1 nÕu nhá h¬n, 0 nÕu b»ng vµ 1 nÕu lín h¬n Toμn vÑn d÷ liÖu (Data Integrity ) TÝnh toµn vÑn d÷ liÖu rÊt quan träng, nã b¶o ®¶m r»ng d÷ liÖu tu©n thñ c¸c quy t¾c http://www.ebook.edu.vn 36
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i nghiÖp vô, ®−îc x¸c ®Þnh bëi ng−êi qu¶n trÞ CSDL hay nhµ ph¸t triÓn øng dông. VÝ dô: gi¶ sö cã quy t¾c lµ kh«ng cã b¶n ghi nµo trong b¶ng INVENTORY cã gi¸ trÞ sè lín h¬n 9 trong cét SALE_DISCOUNT. NÕu lÖnh INSERT hay UPDATE cè g¾ng lµm tr¸i nh÷ng quy t¾c nµy, Oracle huû bá lÖnh ®ã vµ tr¶ l¹i m· lçi cho øng dông. Oracle cung cÊp rµng buéc toµn vÑn d÷ liÖu vµ nh÷ng trigger CSDL ®Ó ®¶m b¶o tÝnh toµn vÑn d÷ liÖu Nh÷ng rμng buéc toμn vÑn d÷ liÖu (Integrity Constraint) Rµng buéc toµn vÑn d÷ liÖu lµ c¸c miªu t¶ ®Ó ®Þnh nghÜa quy t¾c nghiÖp vô cho cét cña mét b¶ng. Rµng buéc toµn vÑn d÷ liÖu lµ lÖnh ®Ó d÷ liÖu trong b¶ng ®ã lu«n ®óng: NÕu Rµng buéc toµn vÑn d÷ liÖu ®−îc t¹o cho mét b¶ng vµ mét sè b¶ng tån t¹i kh«ng tho¶ m·n rµng buéc ®ã, th× rµng buéc ®ã kh«ng cã hiÖu lùc. Rµng buéc d÷ liÖu ®−îc kiÓm tra ngay tõ khi t¹o. Sau khi rµng buéc ®−îc ®Þnh nghÜa, nÕu nh− bÊt k× kÕt qu¶ cña lÖnh DML kh«ng tho¶ m·n rµng buéc ®ã th× lÖnh bÞ tr¶ vÒ cïng víi m· lçi Rµng buéc toµn vÑn d÷ liÖu ®−îc ®Þnh nghÜa cho b¶ng vµ ®−îc l−u tËp trung nh− mét phÇn ®Þnh nghÜa vÒ b¶ng ®ã trong tõ ®iÓn d÷ liÖu cña CSDL, v× vËy c¸c øng dông CSDL ph¶i g¾n víi cïng mét tËp c¸c quy t¾c. NÕu nh− quy t¾c thay ®æi, chØ cÇn thay ®æi t¹i 1 møc CSDL vµ kh«ng tèn nhiÒu thêi gian thay ®æi cho tõng øng dông Nh÷ng rµng buéc toµn vÑn d÷ liÖu sau ®−îc hç trî bëi Oracle NOT NULL Kh«ng cho phÐp cét rçng UNIQUE Kh«ng cho phÐp trïng lÆp d÷ liÖu trªn mét cét PRIMARY Gåm c¶ 2 rµng buéc trªn. KEY FOREIGN KEY Mçi gi¸ trÞ trong cét (hay tËp c¸c cét) ph¶i phï hîp víi gi¸ trÞ trong b¶ng liªn quan UNIQUE hay PRIMARY KEY. FOREIGN KEY chØ ra rµng buéc d÷ liÖu nÕu nh− d÷ liÖu b¶ng tham kh¶o thay ®æi CHECK D÷ liÖu ph¶i tho¶ m·n mÖnh ®Ò logÝc cña rµng buéc . Kho¸ (Key) Kho¸ ®−îc sö dông ®Ó ®Þnh nghÜa mét vµi kiÓu rµng buéc. Kho¸ lµ cét hay tËp c¸c cét cã trong ®Þnh nghÜa cña kiÓu rµng buéc toµn vÑn nµo ®ã. Kho¸ m« t¶ quan hÖ gi÷a nh÷ng b¶ng vµ cét kh¸c nhau cña CSDL quan hÖ. C¸c kiÓu kho¸ bao gåm primary key Cét hay tËp c¸c cét ®−îc ®Þnh nghÜa rµng buéc PRIMARY KEY. Gi¸ trÞ kho¸ chÝnh ph¶i ®−îc ®Þnh nghÜa duy nhÊt vµ kh«ng rçng unique key Cét hay tËp c¸c cét ®−îc ®Þnh nghÜa rµng buéc UNIQUE th× ph¶i duy nhÊt. foreign key Cét hay tËp c¸c cét tham kh¶o tíi rµng buéc toµn vÑn b¶ng kh¸c. referenced key unique key hay primary key cña cïng hay kh«ng cïng b¶ng ®−îc tham kh¶o bëi foreign key. Trigger cña CSDL Trigger cña CSDL cho phÐp ®Þnh nghÜa vµ ®¶m b¶o nh÷ng quy t¾c rµng buéc toµn vÑn, nh−ng trigger kh«ng ph¶i chØ lµ rµng buéc toµn vÑn. Thùc ra trigger kh«ng kiÓm tra d÷ liÖu ®· cËp nhËt vµo b¶ng. V× vËy khuyÕn c¸o chØ nªn sö dông trigger khi nh÷ng quy t¾c rµng buéc kh«ng thÓ ®¶m b¶o ®−îc tÝnh toµn vÑn d÷ liÖu http://www.ebook.edu.vn 37
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i Chi tiÕt vÒ lÖnh SQL Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language (DDL)) C¸c lÖnh DDL ®Þnh nghÜa, duy tr× vµ xo¸ c¸c ®èi t−îng l−îc ®å khi chóng kh«ng cßn cÇn thiÕt. Chóng còng bao gåm lÖnh cÊp quyÒn cho User hay quyÒn truy nhËp CSDL vµ nh÷ng ®èi t−îng cô thÓ trong CSDL. LÖnh t¹o CSDL Có ph¸p: CREATE DATABASE ; Môc ®Ých: Khëi t¹o CSDL cã tªn lµ Database_name, nÕu nh− sö dông c©u lÖnh nµy trªn mét CSDL ®· tån t¹i th× toµn bé c¸c file d÷ liÖu cña nã sÏ bÞ xãa. VÝ dô: CREATE DATABASE Csdl_Bgg; LÖnh t¹o b¶ng Có ph¸p: CREATE TABLE ( Col_Name1 Data_Type [NOT NULL], Col_Name2 Data_Type [NOT NULL], ... Col_NameN Data_Type, [constraInt Constraint_Name PRIMARY KEY (ColA, .. , ColAn)], [constraInt Constraint_Name FOREIGN KEY (ColB, .. , ColBn)], [constraInt Constraint_Name CHECK ]); Môc ®Ých: T¹o b¶ng Table_Name víi c¸c tr−êng “Col_Name1”, .. , “Col_NameN” víi rµng buéc khãa chÝnh, khãa ngoµi, “Conditon” kiÓm tra ®iÒu kiÖn rµng buéc d÷ liÖu khi ®−a vµo b¶ng. VÝ dô: CREATE TABLE Employ( Employ_ID VARCHAR2(5) NOT NULL, Depart_ID VARCHAR2(5) NOT NULL, Employ_Name VARCHAR2(27), Sal NUMBER, CONSTRAINT PK_Employ (Employ_ID), CONSTRAINT FK_Employ (Depart_ID), CONSTRAINT Con_Check CHECK Sal >1000 AND Sal
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i Môc ®Ých: §Þnh nghÜa khung nh×n lµ b¶ng logic dùa vµ nh÷ng b¶ng hoÆc view kh¸c VÝ dô: CREATE VIEW dept20 AS SELECT Employ_Name, sal*12 Annual_Salary FROM Employ WHERE Depart_ID = ‘DP01’; LÖnh t¹o User Có ph¸p: CREATE USER User_Name IDENTIFIED BY Pasword [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [QUOTA integer[UNLIMITED] ON tablepace] [ACCOUNT LOCK[UNLOCK]]; IDENTIFIED: MËt khÈu ®¨ng nhËp, DEFAULT: §Þnh nghÜa Tablespace ngÇm ®Þnh cho c¸c ®èi t−îng mµ user t¹o ra, TEMPORARY: §Þnh nghÜa Tablespace cho nh÷ng segment t¹m thêi cña user, QUOTA: Tuú chän, h¹n møc l−u tr÷ trong tablespace b»ng sè integer byte , ACCOUNT: Khãa hay kh«ng khãa truy nhËp user. Môc ®Ých: T¹o vµ cÊu h×nh cho User_Name quyÒn truy nhËp vµo CSDL hay account cho phÐp log vµo CSDL víi quyÒn user ®ã VÝ dô: CREATE USER sidney IDENTIFIED BY welcome DEFAULT TABLESPACE cases_ts QUOTA 10M ON cases_ts TEMPORARY TABLESPACE temp_ts QUOTA 5M ON system ; LÖnh xãa CSDL Có ph¸p DROP DATABASE ; Môc ®Ých: Xãa mét CSDL cïng víi mäi d÷ liÖu trong CSDL ®ã. VÝ dô: DROP DATABASE Csdl_Bgg; LÖnh xãa mét b¶ng Có ph¸p: DROP TABLE ; Môc ®Ých: Xãa b¶ng cïng víi mäi d÷ lÖu cã trong b¶ng VÝ dô: DROP TABLE Employ; http://www.ebook.edu.vn 39
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i LÖnh xãa User cña mét CSDL Có ph¸p: DROP USER User_name [CASCADE]; Môc ®Ých: Xãa user cña CSDL vµ nh÷ng ®èi t−îng cña user ®ã, lùa chän CASCADE xãa tÊt c¶ c¸c ®èi t−îng cã trong l−îc ®å cña user VÝ dô: DROP USER Tunb; C¸c lÖnh cÊp vμ xãa quyÒn Cã hai c¸ch cÊp quyÒn: §èi t−îng vµ hÖ thèng nh− ®· nãi ë trªn. LÖnh cÊp quyÒn Có ph¸p: GRANT privilege ON object TO grantee [WITH GRANT OPTION]; Trong ®ã privilege tªn quyÒn, object lµ ®èi t−îng mµ ta cÊp quyÒn trªn nã, grantee lµ user ®−îc cÊp quyÒn gåm c¸c quyÒn: Object Privilege Miªu t¶ KiÓu ®èi t−îng l−îc ®å ALTER Cã quyÒn víi c©u lÖnh ALTER Table, Sequence DELETE Cã quyÒn víi c©u lÖnh Table, View DELETE EXECUTE QuyÒn thùc hiÖn nh÷ng ®èi Procedure, Function, Package t−¬ng Store PL/SQL INDEX Cho quyÒn víi lÖnh CREATE Table INDEX INSERT Cã quyÒn víi c©u lÖnh Table,View INSERT REFERENCE QuyÒn t¹o nh÷ng rµng buéc Table tham chiÕu SELECT Cã quyÒn víi c©u lÖnh Table, View, Sequence, SELECT snapshot UPDATE Cã quyÒn víi c©u lÖnh Table, View UPDATE Môc ®Ých: T¹o quyÒn truy nhËp trªn d÷ liÖu cho User VÝ dô: GRANT SELECT ON Class TO UserA; C©u lÖnh hñy bá quyÒn user Có ph¸p: REVOKE privilege ON object FROM grantee [CASCADE CONSTRAINTS]; Môc ®Ých: Hñy bá quyÒn thao t¸c trªn ®èi t−îng CSDL cña User VÝ dô: REVOKE UPDATE, DELETE, INSERT ON student FROM userA; Trªn c¸c hÖ thèng lín cña Oracle th−êng cã nhiÒu ng−êi dïng, do vËy quyÒn cã thÓ ®−îc thay ®æi th−êng xuyªn, Oracle cung cÊp ROLE ®Ó lùa chän quyÒn trªn c¶ 2 lo¹i: ®èi t−îng vµ hÖ thèng Có ph¸p: CREATE ROLE ; GRANT privilege ON object TO role_name; ... http://www.ebook.edu.vn 40
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i GRANT privilege ON object TO role_name; GRANT role_name TO user; VÝ dô: CREATE ROLE table_query; GRANT SELECT ON students TO table_query; GRANT SELECT ON classes TO table_query; GRANT SELECT ON rooms TO table_query; GRANT table_query TO UserA; GRANT table_query TO UserB Söa ®æi cÊu tróc Thay ®æi kiÓu mét cét Có ph¸p: ALTER TABLE MODIFY/ ADD[CONSTRAINT] (Col_name New_type); ALTER TABLE DROP CONSTRAINT Constraint_Name; Môc ®Ých: Thay thÕ hoÆc thªm mét tr−êng míi, xãa rµng buéc khãa chÝnh hay nh÷ng CONSTRAINT VÝ dô: ALTER TABLE Employ ADD (BirthDate DATE); Alter table Department add constraint PK_Employ primary key (Employ_ID); Ng«n ng÷ thao t¸c víi d÷ liÖu (DML) C¸c lÖnh DML thao t¸c d÷ liÖu trong CSDL. VÝ dô: Truy vÊn, thªm, cËp nhËt vµ xo¸ nh÷ng b¶n ghi. C¸c lÖnh truy vÊn Có ph¸p: SELECT [DISTINCT] FROM WHERE GROUP BY HAVING ORDER BY [ASC/DESC] Môc ®Ých: §−a ra nh÷ng c©u hái yªu cÇu SQL ®−a ra nh÷ng d÷ liÖu cÇn thiÕt, Select cã thÓ ®−îc thùc hiÖn trªn nhiÒu b¶ng, Select lµ mét mÖnh ®Ò, mçi mÖnh ®Ò cho phÐp trong nã cã mÖnh ®Ò con. VÝ dô: SELECT Employ_Name, AVG (Sal) TBLuong FROM Salary GROUP BY Employ_Name HAVING AVG(Sal) >=500; C¸c lÖnh truy vÊn lång nhau SELECT */Colum/Expression FROM http://www.ebook.edu.vn 41
- Tμi liÖu ®μo t¹o HÖ th«ng tin ®èi t−îng C¬ b¶n vÒ Oracle 8i WHERE Colum =/>=/ (SELECT AVG(Sal) FROM Employ); C¸c lÖnh qu¶n trÞ d÷ liÖu Thªm mét dßng: INSERT INTO [(Field1, Field2,..., Fieldn)] VALUES (Value1, Value2, ..., Valuen); VÝ dô: INSERT INTO Employ VALUES (‘EP001’, ’DP01’, ’David’, 2000, ’08/05/1974’); LÖnh xo¸ mét b¶n ghi DELETE FROM WHERE ; VÝ dô: DELETE FROM Sal WHERE Employ_id=’EP001’; LÖnh söa ®æi gi¸ trÞ: Update Set (Attr=new_value) Where ; VÝ dô: Update Salary Set (Sal=3000) Where Employ_id=’EP001’; -------------------------------------------------------------------------------- http://www.ebook.edu.vn 42
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn