24 Ağustos 2011 Çarşamba

Overview of Schemas and Common Schema Objects / Şemalar ve Ortak Şema Nesnelerine Genel Bakış

A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are the logical structures that directly refer to the database's data. There is no relationship between a tablespace and a schema. Objects in the same schema can be in different tablespaces, and a tablespace can hold objects from different schemas. Schema objects include structures such as tables, views, and indexes. Some of the most common schema objects are defined in the sections that follow.
This section includes the following topics:

Tables

Tables are the basic unit of data storage in an Oracle database. Database tables hold all user-accessible data. Each table has columns and rows. A table that has employee information, for example, can have a column called employee_number, and each row in that column is an employee number.

Indexes

Indexes are optional structures associated with tables. You can create indexes to increase the performance of data retrieval. Just as the index in this manual helps you quickly locate specific information, an Oracle database index provides an access path to table data.
When processing a request, Oracle Database can use some or all of the available indexes to locate the requested rows efficiently. Indexes are useful when applications frequently query a table for a range of rows (for example, all employees with a salary greater than 1000) or a specific row (for example, the employee with the highest salary).
You create an index on one or more columns of a table. Thereafter, Oracle Database automatically uses and maintains the index. Changes to table data (such as adding new rows, updating rows, or deleting rows) are automatically incorporated into all relevant indexes.

Views

Views are customized presentations of data in one or more tables or other views. A view can also be considered a stored query. Views do not contain actual data. Rather, they derive their data from the tables on which they are based, referred to as the base tables of the views.
You can query, update, insert into, and delete views as you can with tables, with some restrictions. If the view is updatable, then all operations performed on the view actually affect the base tables of the view.
Views can provide table security by restricting access to a predetermined set of rows and columns of a table. They also hide data complexity and store complex queries.

Clusters

Clusters are groups of one or more tables physically stored together because they share common columns and are often used together. Because related rows are physically stored together, disk access time improves.
Like indexes, clusters do not affect application design. Whether a table is part of a cluster is transparent to users and to applications. SQL statements access data stored in a clustered table in the same way that they access data stored in a nonclustered table.

Synonyms

A synonym is an alias for any table, view, materialized view, sequence, operator, procedure, function, package, Java class schema object, user-defined object type, or another synonym. A synonym is simply an alias, so it requires no storage other than its definition in the data dictionary.
Türkçesi:

Overview of Schemas and Common Schema Objects (Şema ve Yaygın Şema Nesneleri)

Bir şema, veritabanı nesnelerinin bir koleksiyonudur.şema, bir veritabanı kullanıcı tarafından sahip olunan ve bu kullanıcı olarak aynı isme sahiptir.Şema nesneleri doğrudan veritabanının verilerine işaret eden mantıksal yapılardır.Bir tablespace ve şema arasında ilişki yoktur.Aynı şema Nesneler farklı tablespace'ler olabilir, bir tablespace içerisinde, farklı şemalardan nesneleri tutabilir.Şema nesneleri, tablolar, görünümler, dizinler gibi yapıları içerir. Bazı en yaygın şema nesneleri aşağıdaki bölümlerde tanımlanmıştır.
Bu bölüm aşağıdaki konuları içerir:


Tables

Tablolar bir Oracle veritabanı, veri depolama temel birimidir. Veritabanı tabloları, tüm kullanıcı erişilebilir veri tutar. Her tablo, sütun ve satırı vardır. Çalışan bilgileri bir tablo, örneğin, employee_number adında bir sütun olabilir, ve o sütundaki her satır bir çalışanın sayıdır.

Indexes

İndeksler tablo ile ilişkili isteğe bağlı yapılardır. Veri alma performansını artırmak için index oluşturabilirsiniz.Bu kılavuzda index özel bilgileri hızla bulmanıza yardımcı olur gibi, bir Oracle veritabanı dizini veri tablosu için bir erişim yolu sağlar.

Bir isteği işlerken, Oracle Veritabanın içindeki verimli bir şekilde istenen satırları bulmak için mevcut dizinlerin bazılarını veya tümünü kullanabilirsiniz.uygulamalar sık sık satır aralığı (örneğin, 1000'den daha yüksek bir maaş ile tüm çalışanlar) veya özel bir satır (örneğin, en yüksek maaş ile çalışan) için bir tablo sorgulandığında indeksler kullanışlıdır.

Bir tabloda bir veya daha fazla sütun üzerinde bir dizin oluşturabilirsiniz. Bundan sonra, Oracle Veritabanın içindeki otomatik olarak kullanır ve dizin korur. Tablo verileri yapılan değişiklikler (örneğin, yeni satırlar ekleyerek, satır, güncelleme veya silme satır gibi) otomatik olarak ilgili tüm dizinler içine dahil edilmiştir.

Views

Views, bir veya daha fazla tablo veya diğer görünümlerde veri sunumları isteğe uyarlanmıştır.Bir view de saklı bir sorgu olarak kabul edilebilir.Görüntüleme gerçek veri içermez.Bilakis, Onlar view'lerin temel tablosu olarak başvurulan, kendi veri dayandığı tablolardan dayanan bilgilerinden türetilir.

Bazı kısıtlamalarla birlikte, view'leri sorgulayabilir güncelleyebilir ,içine ekleyebilir ve tabloları ile silebilirsiniz.Görünümü güncellenebilir ise, görünümü üzerinde gerçekleştirilen tüm işlemler aslında görünümün temel tablolar etkilemez.

View'ler erişimi kısıtlamak için, satır ve sütunların önceden belirlenmiş bir tablo güvenlik sağlayabilir. Ayrıca veri karmaşıklığını gizler ve karmaşık sorguları saklar.

Clusters

Kümeler ortak sütunlar paylaşırlar ve genellikle birlikte kullanılır, çünkü fiziksel olarak birlikte saklanan bir veya daha fazla tablo gruplardır.Çünkü, ilgili satırlar fiziksel olarak bir arada saklandığı için, disk erişim süresini artırır.

İndeksler gibi, kümeler uygulama tasarımı etkilemez. Bir tablo bir kümenin parçası olup olmaması, kullanıcılar ve uygulamalar için şeffaftır.SQL ifadeleri kümelenmemiş bir tabloda depolanan veri erişir aynı şekilde kümelenmiş bir tabloda saklanan verilere erişir.

Synonyms

Bir Synonym herhangi bir tablo, görünüm, gerçekleşmiş view, sekans, operatör, prosedür, fonksiyon, paket, Java sınıfı şema nesnesi, kullanıcı tanımlı nesne türü, ya da başka bir eş anlamlısı için bir takma adıdır.Bir Synonym sadece bir takma addır, bu nedenle veri sözlüğünde tanımı dışında hiçbir depolama gerektirmez.



Daha fazla Türkçe Kaynak Eklemek İstersek:

*Veri Tabanı Şema Nesneleri
Şema nesneleri mantıksal veri depolama yapıları olarak bilinir. Veritabanı üzerinde kullanıcının belirli işleri yapabilmesi için tanımlanan bu yapılar tablolar, görüntüler, sıralar, eşanlamlar, indeksler, kümeler, veritabanı bağlantıları, prosedürler, fonksiyonlar, ve paketlerdir. Bir şema ise bu nesnelerin oluşturduğu gruptur.
Küme(CLUSTER)
Aynı anda sorgulanan birden fazla tablonun bir arada kaydedilmesine “cluster” denir. Bu yapı, beraber sorgulanan tablolarda hız kazanmak için çok önemlidir. Örneğin “isci” tablosu ile “bolum” tablosunun(bu tabloların yapısı için SQL bölümüne bkz.) her ikisi de ortak olarak “bolum” ve “bolumno” alanlarını içermekte. Yani “isci” tablosundaki “bolum”, “bolum” tablosundaki “bolumno” alanına karşılık geliyor. Burada oluşturulacak bir cluster’da her iki tablo veritabanında yan yana getirilerek aynı veri bloğu içerisine kaydedilir.Böylece daha hızlı erişim sağlanır.
İndeks(INDEX)
İndeksler tablo ve cluster’lar için kullanılan veri tabanı nesneleridir. Burada amaç aranılan bir kayda daha hızlı erişimdir. Özellikle üzerinde çok arama yapılan alan veya alanlar üzerinde indeks oluşturmak çok etkilidir.  İndeks oluşturulduğunda ilgili tablonun kayıtları yer değiştirmez. Sadece ilgili kayıtların kayıt numaraları olarak adlandırılan “rowid” ‘ler alınarak sıralama yapılır.
Bir tablo üzerinde oluşturulabilecek indeks sayısı sütunların kombinasyonları farklı olduğu müddetçe sınırsızdır. Bir sütun diğer sütunlarla değişik kombinasyonlarda kullanıldığı müddetçe birden fazla indeks içerisinde yer alabilir.  Aynı sütun kombinasyonlarının indeksi, faklı indeks ismi kullanarak oluşturulmaya çalışılsa bile gerçekleştirilemez.
İndeksleme işleminin gerçekleştirilmesinde Oracle çoğunlukla B-tree indeksleme metodunu kullanır. Bunun yanında “hash cluster indexes”, “reverse key indexes”, ve “bitmap indexes” yöntemlerini de kullandığı bilinmektedir.
İndeksler mantıksal ve fiziksel olarak oluşturuldukları tablodan bağımsızdırlar. Eğer bir indeks silinirse, ilgili tablo zarar görmez, çalışmaya devam eder. Fakat indeks olmadığı için veri erişim süresi artacaktır.
Oracle bir indeks oluşturulduğunda onu otomatik olarak kullanmaya başlar ve  indeksin oluşturulduğu tablodaki silme, güncelleme ve ekleme işlemleri indekse otomatik olarak yansıtılır.
Rol(ROLE)
Oracle veritabanında her nesnenin ait olduğu bir kullanıcı vardır. Bir kullanıcı bir başka kullanıcının nesneleri üzerinde işlem yapmak isterse buna hakkı olması gerekir. Bir nesne üzerinde işlem yapabilme yetkisine hak denir. Örneğin veritabanına bağlanma, tablo oluşturma, bir başkasına ait tablodan kayıt listeleme, bir başkasının prosedürünü çalıştırma birer haktır. Bu haklar kullanıcılara atanmak suretiyle kullanıcıların bu işlemeleri gerçekleştirmeleri sağlanır. Hakların kullanıcılara atanması iki şekilde olabilir. Birinci olarak  bir tabloya kayıt ekleme, kayıt silme vb. haklar bir kullanıcıya ya da kullanıcılara ayrı ayrı atanır. İkinci şekilde ise verilmek istenen haklar bir rol altında birleştirilir ve bu rol istenen kullanıcılara aktarılır.
Haklar “sistem hakları” ve “nesne hakları” olmak üzere ikiye ayrılır. Sistem hakları veritabanı ile ilgili olarak önceden tanımlanmış rollerdir. Oracle’da 60’tan fazla sistem hakkı tanımlanmıştır. Nesne hakları ise veri tabanı nesneleri üzerinde işlem yapma haklarıdır. “Create Table”, “Create TableSpace”, “Drop Any Index” gibi haklar sistem haklarına örnek olarak verilebilir.  Nesne hakları ise 8 çeşittir. “Select”, “Insert”, “Update”, “Delete”, “Alter”, “Index”, “Execute”, “References”, “All” çeşittir. “All” ayrı bir hak olarak adlandırılmaz. Diğer tüm hakları kapsar. Bu haklar sırayla kayıt seçme, kayıt güncelleme, kayıt silme, nesnelerin yapısını değiştirme, indeks oluşturma, alt program çalıştırma, yabancı anahtar tanımlayabilme işlemlerini içerirler. Rol tanımlama ve hak verme komutları ileride ayrıntılı olarak işlenecektir.
Geri Alma Parçası(ROLLBACK SEGMENT)
Oracle veritabanının güvenliği açısından “Select”, “Insert”, “Update”, “Delete” gibi işlemlerin yedeğini almaktadır. Alınan bu yedeklerin konulduğu yerlere geri alma parçası denir. Kullanıcı bu tip işlemleri yaptıktan sonra “Rollback” komutunu uygularsa, yaptığı değişiklikler geri alma parçalarından getirilir ve böylece kayıtlar eski haline dönmüş olur. Kullanıcı “Commit” komutunu verirse yaptığı değişiklikler geri alma parçalarından geri getirilemez. Her veritabanında bir ya da birkaç tane geri alma parçası olabilir.
Sıra(SEQUENCE)
Tablolardaki kayıtlar için otomatik sıra numarası verilmesi isteniyorsa sıra nesnesi kullanılabilir. Bu sıra numarası veritabanı tarafından otomatik olarak üretilir.  Özellikle çok kullanıcılı ortamlarda tekil olarak numara üretilmek istendiğinde çok kullanışlıdır.  Birden fazla kullanıcı aynı anda böyle bir sayı üretmek isterse bunun program koduyla yapılması işlem hızını yavaşlatır. Çünkü bir kullanıcı diğeri işini bitirene kadar beklemek zorundadır. Sıra nesnesi bu işi otomatik olarak ve çok seri bir şekilde başarır.
Sıra numaraları Oracle’da tanımlı 38 rakama kadar tamsayılardan oluşur. Bir sıra tanımlaması sıranın adını, artan ya da azalan olacağını, iki sayı arasındaki fark miktarını içerir. Oracle tüm sıra numarası tanımlarını SYSTEM tablo uzayının içerisindeki bir veri sözlüğü tablosuna kaydeder. SYSTEM tablo uzayı sürekli çalışır durumda olduğu için tüm sıra numaraları da aktiftir. Sıra numaraları tablolardan bağımsız olarak üretilir. Yani bir sıra numarası bir ya da daha çok tablo için kullanılabilir.
Kayıtlı Fonksiyonlar(STORED FUNCTION) ve Kayıtlı Prosedürler(STORED PROCEDURE)
Bir grup SQL ya da PL/SQL komutunun belli bir işi gerçekleştirmek için bir araya getirilip veritabanına kaydedilmesi kayıtlı prosedürler ve fonksiyonlar sayesinde olur. Birden fazla uygulama programı içerisinde aynı işi yapan kodları sürekli yazmak yerine kayıtlı prosedür ve fonksiyonlar bir kere yazılır ve tüm uygulamalar tarafından kullanılır. SQL*Plus, Oracle Forms ya da Oracle Reports içerisinden bu prosedürler çağrılabilir. Prosedürler geriye birden fazla değer döndürebilirken, fonksiyonlar  sadece bir değer döndürürler.
Eşanlam(SYNONYM)
Eşanlam bir tablo, görüntü, sıra, prosedür, fonksiyon ya da paket için “alias” olarak adlandırılan bir takma isimdir. Eşanlam bir takma isim olduğu için veri sözlüğü içerisindeki tanımının kapladığı yer haricinde, veritabanında yer kaplamaz. Eşanlamlar güvenlik ve daha rahat kod yazma amacıyla kullanılırlar. Bir eşanlam kullanıldığında ilgili nesnenin adı ve sahibi gizlenir ve SQL komutu içerisinde kullanımı kolaylaşır.
Eşanlamlar genel(Public) ve özel(Private) olarak tanımlanabilirler. “Genel” olarak tanımlanan eşanlamlara tüm veritabanı kullanıcıları erişebilir. “Özel” olarak tanımlanan eşanlamlara sadece ilgili nesnenin sahibi ve sahibi tarafından hak verilmiş bir başka kullanıcı erişebilir.
Bir nesnenin adı değiştirilmek istendiğinde ya da silinmek istendiğinde, bu nesneyi kullanan tüm uygulama programları değiştirilmek zorundadır. Oysa ki bu nesnenin bir eşanlamı oluşturulursa ve uygulama programları bu eşanlamı kullanırsa, eşanlam üzerinde yapılacak değişikliklerle bu silme vb. işlemlerden uygulama programlarının etkilenmesi önlenebilir.
Bir kullanıcı bir başka kullanıcının nesnesini kullanmak istediğinde “kullanıcı_adı.nesne_adı” şeklinde bir yazım kuralına uymak zorundadır. Eğer bir “genel” olarak bir eşanlam tanımı yapılırsa tüm kullanıcılar direk eşanlam ismini kullanarak işlemlerini gerçekleştirebilirler.
Tablo(TABLE)
İlişkisel Veri Tabanı Yönetim Sistemleri’nde veriler tablolar içerisinde yer alır. Her tablo bir isimle tanımlanır ve her biri  bir “kayıt” olarak adlandırılan satırlar ile bu kayıtlardaki verilerin özelliklerini belirleyen sütunlardan oluşur. Her tablo bir ya da daha fazla sütuna sahip olabilir. Her sütunun bir adı ve veri tipi vardır.
Bir tablo oluşturulduğunda Oracle verileri depolamak için bir tablo uzayı içerisinde bir veri segmenti ayırır. Veri segmentinin değerleri değiştirilerek bir tablo için ayrılacak yer miktarı da değiştirilebilir.
Görüntü(VIEW)
Görüntü bir ya da birkaç tablodan istenilen alanların alınmasıyla oluşturulan sanal bir tablodur. Görüntü bu tablolar üzerinde gerçekleştirilen bir sorgu sonucu oluşturulur. Bir görüntü üzerinde silme, güncelleme gibi işlemler yapılamaz. Çünkü görüntü oluşturulduğu tabloların sadece o anlık görüntüsüdür ve veritabanında kendi tanımının kapladığı yer haricinde yer kaplamaz.



*Tablolar (Tables)

Veritabanınında bilgilerin tutulduğu alanlar tablolardır. Tablolar belirli karakteristiklere sahip kolonlardan oluşur. Bilgiler satır satır tutulmaktadır. Bir tabloda sınırsız sayıda satır olabilir.
İndeksler (indexes)

Tablolarda aranan kaydı daha çabuk bulabilmek için tanımlanan nesnelere indeks denir. İndeksler daha çok kullanılan kolonlar üzerine tanımlanır. İndeksin seçiciliği ne kadar fazla ise sorgulama o kadar hızlı olur.
Görüntüler (views)

Görüntüler bir anlamda saklanmış sorgulamalardır. Aynı veya farklı veri tabanları üzerinde bulunan bir veya birden fazla tablonun belirli kolonların , belirli bir kritere göre bir araya getirilmiş şeklidir, bu nedenle tablolarda herhangi bir değişiklik olduğunda görüntülerde buna bağlı olarak değişir. Görüntüler sorgulanabilir. Arkalarında tablo olduğu için giriş, güncelleme ve silme işlemleri de yapılabilmektedir. Sadece Oracle veri tabanında birden fazla tabloda oluşan görüntüler üzerinde veriler değiştirilebilmektedir. Örneğin informix sadece bir tablodan oluşan görüntüdeki değiştirilebilmesini desteklemektedir. DB2 ise farklı veri tabanları üzerindeki tablolardan görüntü yaratılmasına olanak vermez. Görüntüler bir veya birden fazla tablonun bir kritere göre bir araya getirilmiş şekli olduğundan performansı çok iyi değildir.
Sıralar (Sequences)

Sıra, veri tabanındaki bir tablonun sayısal bir kolonuna tek (unique) bir sayı listesi üretir. bu sayı listesi olarak bir havuz düşünülebilir. Eğer oracle kolona bir sayı girilecekse kullanıcı oracle havuzdan sıradaki numarayı seçer. Bu durum, çok kullanıcı ortamlarda, sıralı gitmesi gereken veri tabanı asla çakışmaması gereken kolonlarda çok işe yaramaktadır.
Kaydedilmiş Fonksiyon Veri Tabanı Yordamlar

Oracle veri tabanında kullanıcılara ait fonksiyon ve yordamlar, uygulamalarda sıkça kullanılacaksa veri tabanına kaydedilebilmektedir. Eğer bu fonksiyon ve yordamlara kullanım hakkı verilirse, tüm kullanıcılar tarafından çalıştırılabilir. Veri tabanı üzerinde saklanan bu program parçaları, uygulama tarafında yazılan program parçalarından daha hızlı çalışır.




Hiç yorum yok:

Yorum Gönder