oracle/veritabanı kavramları üzerine kısaca aldığım bazı notlar.
- bir kullanıcı, diğer kullanıcıya, kendi tablolarını vs… kullanması için GRANT vermelidir.
- 5 çeşit sql ifadesi vardır.
- Query Statements (select)
- Data Manipulation Statements (insert,update,delete)
- Data Definition Language (create, alter, drop, rename, truncate)
- Transaction Control (commit, rollback, savepoint)
- Data Control Language (grant, revoke)
- rowid, ilgili satırın fiziksel adresini gösterir. fakat tablo üzerinde update, delete vs… ile rowid değeri değişebilir.
- iki çeşit join condition vardır:
- equals
- non-equals
- join types ise 3′e ayrılır:
- inner
- outer
- self joins
- outer join’in bazı kısıtları vardır:
- where condition’da sadece bir tarafa uygulanabilir. (yani “where t1.c1(+)=t2.c2(+)” ifadesi geçersizdir.)
- in operatörü ile kullanılamaz.
- or operatörü ile kullanılamaz.
- SELECT cümleciğinde AGGREATE FUNCTION’da bulunmayan kolonlar GROUP BY’ da yer almalıdır.
- IN yerine EXISTS kullanımı performans açısından daha iyidir.
- SET operasyonlarını (UNION,UNION ALL, INTERSECT ve MINUS) kullanabilmek için kolon sayısının ve tiplerinin aynı olması gerekmektedir.
- TRANSACTION şu durumlarda sona erer:
- commit ya da rollback statement’ı ile
- DDL statement’ı ile
- DCL statement’ı ile
- db’den disconnect olunduğunda.
- DML statment’ı başarısız olursa, ilgili statement ifadesi için rollback ile.
- ACID:
- Atomicity: transactionlar “unit of work” olarak rollback ya da commit olur.
- Consistency: db rollback ya da commit sonrası/öncesi her zaman tutarlı bir statede bulunmalıdır.
- Isolation: transactionların, birbirlerini etkilemeden ayrı olarak çalışması.
- Durability: transaction commitlendiğinde herhangi bir sorun oluşurursa (kesinti vs… gibi) db’nin bu değişikliği sisteme yansıtmasıdır.
Etiketler: acid, oracle, sql, veritabanı