Samenvatting - synoniemen, indexen, select for update, transactie beheer, volgnummers, beveiliging PDF

Title Samenvatting - synoniemen, indexen, select for update, transactie beheer, volgnummers, beveiliging
Course Databanken 1
Institution Karel de Grote Hogeschool
Pages 8
File Size 319.8 KB
File Type PDF
Total Downloads 51
Total Views 128

Summary

Synoniemen, INDEXEN, SELECT FOR UPDATE, TRANSACTIE BEHEER, VOlGNUMMERS, Beveiliging...


Description

Synoniemen Creatie synoniem = je kan een object een andere benaming geven( kan private of public zijn) PRIVATE: zijn synoniemen die je voor jezelf ceeert in je eigen schema. Voorbeeld: - Gebruiker HE maakt voor zijn tabel medewerker een synoniem: CREATE SYNONYM med FOR medewerker; Hij kan nu de tabel medewerker aanspreken met het synoniem MED - SELECT … FROM med; - UPDATE med… - DELETE FROM med…; - INSERT INTO med…; PUBLIC: word door de eigenaar van een tabel of DBA aangemaakt voor al diegenen die met die tabel mogen werken. Voorbeeld: - Gebruiker HE geeft de instructie: CREATE PUBLIC SYNONYM medewerker FOR HE.Medewerker; Elke gebruiker met rechten op de tabel (of het synoniem) kan nu het synoniem gebruiker - SELECT … FROM medewerker; - UPDATE medewerker; - DELETE FROM medewerker; - INSERT INTO medewerker; Verwijderen synoniemen = enkel diegene die het synoniem aanmaakt kan een synoniem verwijderen DROP SYNONYM med; verwijdert gebruiker HE zijn private synonym DROP PUBLIC SYNONYM HE.medewerker; verwijdert gebruiker HE het public synonym dat hij aanmaakte.

INDEXEN Index = vergelijkbaar met een trefwoordenlijst van een boek Voorbeeld: CREATE INDEX ind_med_sal ON medewerker (mdw_salaris); = we plaatsen op mdw_salaris uit de tabel medewerker een index Hoe werkt een index? - De index word enkel gebruikt wanneer het geindexeerde attribuut bij de WHERE clausule staat Soorten: 1. Gewone (enkelvoudige) index: CREATE INDEX ind_med_mdw_afd_nr ON MEDEWERKER (mdw_afd_nr); 2. Unieke index: CREATE UNIQUE INDEX ind_afd_naam ON afdeling (afd_naam); 3. Samengestelde index: CREATE INDEX ind_med_afd_sal ON medewerker (mdw_salaris,mdw_afd_nr); a. Range scanning

SELECT FOR UPDATE Lezers:  Diegenen die op een bepaald moment informatie uit de databanken halen(SELECT)  Kunnen simultaan dezelfde informatie opvragen Schrijvers:  Diegenen die op een bepaald moment de databank inhoudelijk veranderen (DML)  Kunnen niet tegelijkertijd dezelfde rijen wijzigen (geregeld door het locking mechanisme)

TRANSACTIE BEHEER Wat is een transactie? Een transactie bestaat uit een aantal bij elkaar horende instructies waaronder meestal DML-instructies. Waarvoor het DBMS de garantie geeft dat ze samen slagen of samen falen Wanneer begint een transactie?  Na een COMMIT of ROLLBACK o COMMIT maakt wijzigingen definitieg o ROLLBACK maakt wijzigingen ongedaan tot aan de laatst gegeven COMMIT  Na een DDL instructie(create,alter,drop) = impliciete commit  Na een DCL instructie(grant,revoke)= impliciete commit Wanneer eindigt een transactie?  Bij een expilciete COMMIT of ROLLBACK  bij een impliciete COMMIT ten gevolge van een DDL instructie  bij een impliciete COMMIT ten gevolge van een DCL instructie  bij eindigen van sessie (EXIT) = impliciete commit  bij het foutief beëindigen van sessie (bv computer valt uit ..) = impliciete rollback ROLLBACK TO SAVEPOINT naam_savepoint(*) Voorbeeld: begin transactie UPDATE medewerker SET mdw_salaris=mdw_salaris *1.1 WHERE INITCAP(mdw_achternaam)='Pregers'; SAVEPOINT sal_pregers; UPDATE medewerker SET mdw_salaris=mdw_salaris*1.1 WHERE INITCAP(mdw_achternaam)='Joosten'; SAVEPOINT sal_joosten; SELECT SUM(mdw_salaris) FROM medewerker; ROLLBACK TO SAVEPOINT sal_pregers; UPDATE medewerker SET mdw_salaris=mdw_salaris*1.1 WHERE INITCAP(mdw_achternaam)='Joosten'; ROLLBACK TO SAVEPOINT sal_joosten; Het resultaat van een ROLLBACK  De transactie wordt beëindigd.  Alle wijzigingen in de huidige transactie worden vernietigd;  Alle savepoints in de huidige transactie worden verwijderd;  Alle locks van deze transactie worden vrijgege-ven. Het resultaat van een ROLLBACK TO SAVEPOINT Het vermelde savepoint blijft bestaan, maar alle savepoints die nog volgden worden verwijderd; Een deel van de transactie wordt ongedaan gemaakt; Een transactie moet steeds aan de volgende 4 eigenschappen voldoen: Atomiciteit:de instructies binnen de transactie vormen een geheel, opdelen zou de consistentie van de databank schaden. Consistentie:de databank was consistent voor het uitvoeren van de transactie en moet dat ook zijn erna. Isolatie: een transactie wordt uitgevoerd alsof het de enige transactie is die wordt uitgevoerd. Je kan ervoor zorgen dat er geen interferentie is met acties van andere gebruikers. Durability: Na uitvoering van de transactie worden de wijzigingen die in de transactie werden doorgevoerd definitief (COMMIT) . Bij ROLLBACK is het alsof de wijziging nooit plaatsvond.

TRANSACTIE BEHEER

VOlGNUMMERS CREATE SEQUENCE seq_ordernr START WITH 1 INCREMENT BY 1; = we creeren een sequence seg_orderng met startwaarde 1 en ophoogwaarde 1. ALTER SEQUENCE seq_ordnr NOMAXVALUE; = wijzigen van sequence DROP SEQUENCE seq_ordnr; Om een volgnummer op te halen uit de sequence maken we gebruik vande syntax: naam sequence.NEXTVAL Om het laatste opgehaalde volgnummer op nieuw te gebruiken maken we gebruik van de syntax: naam sequence.CURRVAL Voorbeeld: User 1 maakt gebruik van de sequence SEQ_ORDNR User 1 moet een order toevoegen aan de tabel ORDERS en orderlijnen voor dat order in ORDERLIJNEN tabel ORDERS(ordnr,datum,klantnr) tabel ORDERLIJNEN(ordnr,artnr,hoev,prijs) Sessie user 1 INSERT INTO orders(ordnr,datum,klantnr) VALUES(seq_ordnr.NEXTVAL,sysdate,7788); 1 20-FEB-14 7788 INSERT INTO orderlijnen( ordnr, artnr, hoev, prijs) VALUES(seq_ordnr.CURRVAL,76543,20,5); 1 76543 20 5 INSERT INTO orders (ordnr,datum,klantnr) values(seq_ordnr.NEXTVAL,sysdate,7944); 2 20-FEB-14 7944

Beveiliging Creatie gebruiker CREATE USER username IDENTIFIED BY nieuw paswoord;

Verwijderen gebruiker DROP USER username; -> gebruiker geen eigenaar objecten DROP USER username CASCADE; -> gebruiker bezit objecten, verwijderd ook objecten

Privileges systeemprivileges Voorbeelden van privileges - CREATE SESSION - CREATE TABLE - CREATE SEQUENCE - CREATE INDEX Toekennen: GRANT systeemprivilege TO username WITH ADMIN OPTION; Ontnemen: REVOKE systeemprivilege FROM username; !!het ontnemen van een privilege gegeven met WITH ADMIN OPTION heeft geen cascade effect. Informatie over gebruikers en gekregen privileges - USER_SYS_PRIVS: geeft info over de privileges die de aangelogde user kreeg - SESSION_PRIVS: privileges binnen een sessie - SYSTEM_PRIVILEGE_MAP: overzicht systeemprivileges Eigenaar van object kan aan andere gebruikers rechten toekenne of ontnemen. Wanneer een object privilege wordt gegeven met WITH GRANT OPTION, kan de ontvanger van het object privilege het privilege doorgeven aan andere gebruikers.

Objectprivileges Toekennen: GRANT object privilege ON object TO username WITH ADMIN OPTION; Voorbeeld: - GRANT SELECT, INSERT ON medewerker TO nikki WITH ADMIN OPTION; - GRANT UPDATE(mdw_salaris) ON medewerker TO nikki; -> gebruiker nikki kan enkel het attribuut mdw_salaris wijzigen. Ontnemen: REVOKE object privilege ON object FROM username; ! kunnen niet selectief ontnomen worden.

Beveiliging Roles Een gebruiker met het privilege CREATE ROLE kan aan elke groep een verzameling van systeem en objevt privileges aanbieden. Predefined roles:  CONNECT  RESOURCE  DBA Creatie role: CREATE ROLE rolename; Voorbeeld: - CREATE ROLE rmed;

toekennen van privileges aan role: GRANT systeemprivilege/objectprivileges ON object TO rolename WITH ADMIN OPTION; voorbeeld: - GRANT CREATE SESSION TO rmed - GRANt CREATE TABLE, CREATE SEQUENCE TO rmed; - GRANT SELECT,UPDATE(mdw_salaris,mdw_afd_nr), DELETE ON medewerker TO rmed; - GRANT SELECT ON afdeling TO rmed; Ontnemen van priviles van role: REVOKE rolename/systeemprivi/objectprivi ON object FROM rolename; Voorbeeld: - REVOKE DELETE ON medewerker FROM rmed; Toekennen en ontnemen van een role: GRANT rolename TO username/public/rolename WITH ADMIN OPTION; Voorbeeld: - GRANT rmed TO gebruiker1; - GRANT rmed TO public; REVOKE rolename FROM username/public/rolename; Voorbeeld: - REVOKE rmed FROM gebruiker1; Verwijderen van een role: DROP ROLE rolename; Voorbeeld: - DROP ROLE rmed;...


Similar Free PDFs