• Subd'nin ana sınıfları. ilişkisel alt

    başlangıca

    Veritabanları ve DBMS

    Bilgi sistemi

    Herhangi bir kuruluşun etkin işleyişini sağlamanın en önemli koşullarından biri, gelişmiş bir bilgi sisteminin varlığıdır. Bilgi sistemi verilerin otomatik olarak toplanmasını, işlenmesini ve manipüle edilmesini uygular, teknik veri işleme araçları, yazılım ve bakım personeli içerir.

    Modern bilgi sistemleri biçimi, bir bilgi işlem sistemi, bir veya daha fazla veri tabanı (DB), bir kontrol sistemi içeren veri bankalarıdır. veritabanları(DBMS) ve bir dizi uygulama programı (AP). Veri bankalarının temel işlevleri şunlardır:

    Veri depolama ve koruma;

    Saklanan verileri değiştirme (güncelleme, ekleme ve silme);

    Kullanıcı isteklerine göre veri arama ve seçme;

    Veri işleme ve sonuçların çıktısı.

    Veri tabanıbilgilerin saklanmasını sağlar ve verilerin tanımlanması, saklanması ve işlenmesi için genel ilkeler de dahil olmak üzere belirli kurallara göre düzenlenmiş, adlandırılmış bir veri koleksiyonudur.

    Veritabanı Yönetim sistemi veritabanlarını oluşturmak, sürdürmek ve kullanmak için tasarlanmış bir uygulama programları paketi ve bir dizi dil aracıdır.

    Uygulama programları (uygulamalar) veri bankalarının bir parçası olarak veri işleme, hesaplamalar ve belirli bir forma göre çıktı belgelerinin oluşturulması için kullanılır.

    Başvurubir veritabanı kullanan ve belirli bir konu alanından bilgi işlemenin otomasyonunu sağlayan bir program veya bir dizi programdır. Uygulamalar hem DBMS ortamında hem de DBMS dışında oluşturulabilir - örneğin bir programlama sistemi kullanılarak,Delfi veya C++Oluşturucu, veritabanı erişim araçlarını kullanarak.

    Çoğu durumda veritabanıyla çalışmak için, örneğin sorgular ve raporlar oluşturarak yalnızca DBMS araçlarını kullanabilirsiniz. Uygulamalar, temel olarak vasıfsız kullanıcılar için veritabanıyla çalışmanın rahatlığını sağlamanın gerekli olduğu veya DBMS arayüzünün kullanıcıya uygun olmadığı durumlarda geliştirilir.

    Bilgi sistemlerinde veri tabanı kullanmanın en önemli avantajı, verilerin uygulama programlarından bağımsızlığını sağlamaktır. Bellekteki veri konumu, bunlara erişme yöntemleri vb. konularla uğraşmaya gerek yoktur.

    Bu tür bir bağımsızlık, mantıksal (kullanıcı) ve fiziksel düzeylerde DBMS tarafından desteklenen veritabanındaki verilerin çok düzeyli temsili ile elde edilir.

    Veritabanının optimum işleyişi için ana kriter olarak, kural olarak, kullanıcı isteklerinin uygulama programları tarafından uygulanmasının zamansal özellikleri kullanılır.

    Veritabanları oluşturmak için araçlar

    Dosya sistemleri

    Veri temsilinin temel kavramlarının geliştirilmesi

    Herhangi bir hesaplama işlemi, bazı girdilerin çıktıya eşlenmesidir.

    İşlenen verilerin temsilinin karmaşıklığının ve hesaplama algoritmasının oranı, iki problem sınıfını tanımlar:

    - hesaplama görevleri - verilerin oldukça basit bir temsili ve karmaşık bir hesaplama süreci;

    - veri işleme görevleri (hesaplamaya dayalı olmayan görevler) - basit bir veri işleme algoritması ve karmaşıkişlenen verilerin temsili.

    Buna göre, hem problemin çözümüne yönelik bir algoritma geliştirilmesine hem de işlenen verilerin sunulma yöntemlerine dikkat edilmesi gerekmektedir.

    1960'ların sonlarından itibaren bilgisayarlar, çeşitli türde belgelerin işlenmesiyle ilgili sözde hesaplama dışı sorunları çözmek için yoğun bir şekilde kullanılmaya başlandı. Dosya sistemlerini kullanırken, veriler yalnızca bu görev için tasarlanmış bir dosyada saklanır. Bu durumda, verilerin açıklaması uygulama programında yer alır. Dosya kayıt formatını değiştirirseniz, uygulama programını değiştirmelisiniz. Böylece sorunu çözen yazılım sistemi kendi verilerini tanımlar ve yönetir.

    Dosya sistemlerinin dezavantajları

    1. Bir dosyanın kayıt yapısı, yalnızca oluşturulduğu program tarafından bilinir. Yapının değiştirilmesi, bu veri dosyasını kullanan programların değiştirilmesini gerektirir. Böylece, programlar verilere bağlıdır .

    2. Erişim yetkilendirmesi ile ilgili sorunlar. OS erişim kontrol araçlarını kullanabilirsiniz. Bu çözüm mümkündür, ancak sakıncalıdır. Bilgiye erişim için merkezi yöntemlere ihtiyacımız var.

    3. Çok kullanıcılı erişimin organizasyonu ile ilgili sorunlar. Dosya yönetim sistemleri, çok kullanıcılı mod sağlar, ancak bir veritabanı için kullanmayı zorlaştıran özelliklere sahiptir. Birkaç kullanıcı tarafından veri okunurken herhangi bir sorun yoktur. Değişiklik yapmak, kullanıcı eylemlerinin senkronizasyonunu gerektirir. Genellikle bir dosyayı açarken mod (okuma / yazma) belirtilir. Bu noktada dosya değiştirme modunda başka bir işlem tarafından açılırsa, işletim sistemi ya dosyanın açılamadığını bildirir ya da diğer işlem kapanana kadar eylem engellenir. Her durumda, birkaç kullanıcı aynı anda veritabanını değiştiremez veya işlem yavaştır.

    Bir problemi çözerken bir veya daha fazla ayrı dosya kullanan bir uygulama programında, verilerin güvenliğinden ve güvenilirliğinden bu problemle çalışan programcı sorumludur. Bir veritabanı kullanmak, onunla çeşitli uygulama programlarıyla çalışmayı içerir. problem çözme farklı kullanıcılar

    Doğal olarak, uygulanan sorunlardan birini çözen bir programcı, entegre verilerin güvenliğinden ve güvenilirliğinden artık sorumlu olamaz. Ek olarak, veritabanı kullanılarak çözülen görevlerin kapsamını genişletmek, yeni kayıt türlerinin ve bunlar arasındaki ilişkilerin ortaya çıkmasına neden olabilir. Veritabanı yapısındaki bu tür bir değişiklik, daha önce geliştirilmiş ve veritabanıyla çalışan başarılı bir şekilde çalışan uygulama yazılım sistemleri setinde bir değişikliğe yol açmamalıdır. Öte yandan, uygulama programlarından herhangi birinde meydana gelebilecek olası bir değişiklik, veri yapısında bir değişikliğe yol açmamalıdır. Yukarıdakilerin hepsi yol açarverileri uygulamalardan ayırma ihtiyacı.

    Veritabanı Yönetim Sistemleri

    Uygulama programları ile veritabanı arasındaki bağımsızlığını sağlayan arayüzün rolü, bir yazılım paketi - bir veritabanı yönetim sistemi (DBMS) tarafından oynanır.

    DBMS, birçok kullanıcı (uygulama programları) tarafından bir veritabanı oluşturmak, sürdürmek ve kullanmak için tasarlanmış, entegre bir veri kümesini desteklemek için bir yazılım paketidir.

    Veritabanı yönetim sisteminin temel işlevleri.

    1. Oluşturulan veritabanının yapısının belirlenmesi, başlatılması ve ilk yüklenmesi

    2. Kullanıcılara verileri manipüle etme yeteneği sağlamak (gerekli verileri seçme, hesaplamaları yapma, bir G / Ç arayüzü geliştirme, görselleştirme).

    3. Uygulama programlarının bağımsızlığının sağlanması ve (mantıksal ve fiziksel bağımsızlık).

    4. Veritabanının mantıksal bütünlüğünü korumak.

    5. Fiziksel bütünlüğün korunması.

    6. Veritabanına erişmek için kullanıcı izinlerini yönetme.

    7. Birkaç kullanıcının çalışmasının senkronizasyonu.

    8. Depolama ortamı kaynak yönetimi.

    9. Sistem personelinin faaliyetleri için destek.

    1. Oluşturulan veritabanının yapısının belirlenmesi, başlatılması ve ilk yüklenmesi. Çoğu modern DBMS'de, veritabanı bir dizi tablo olarak temsil edilir.

    2. Kullanıcılara verileri manipüle etme yeteneği sağlamak (gerekli verileri seçme, hesaplamaları yapma, bir G / Ç arayüzü geliştirme, görselleştirme). VTYS'deki bu tür fırsatlar, ya VTYS'nin parçası olan özel bir programlama dili kullanılarak ya da bir grafik arayüz kullanılarak sunulur.

    3. Uygulama programlarının ve verilerinin bağımsızlığının sağlanması (mantıksal ve fiziksel bağımsızlık). DBMS'nin en önemli özelliği, veritabanının iki bağımsız görünümünü - verilerin mantıksal temsilinde somutlaşan "kullanıcı görüşü" ve bunun uygulama programlarına yansıması; ve "sistem görünümü" - verilerin bilgisayar belleğindeki fiziksel temsili. Mantıksal veri bağımsızlığının sağlanması, veri depolamanın fiziksel yapılarını değiştirmeye gerek kalmadan veritabanının mantıksal gösterimini (belirli sınırlar dahilinde) değiştirme yeteneği sağlar. Bu nedenle, uygulama programlarında verilerin mantıksal temsilindeki bir değişiklik, veri depolama yapılarında bir değişikliğe yol açmaz. Verilerin fiziksel bağımsızlığının sağlanması, verilerin "mantıksal" sunumunu değiştirme ihtiyacına neden olmadan bilgisayar belleğindeki bir veritabanını düzenleme yollarını (belirli sınırlar dahilinde) değiştirme yeteneği sağlar. Bu nedenle, veritabanının düzenlenme şeklini değiştirmek, uygulama programlarını değiştirmez.

    4. Veritabanının mantıksal bütünlüğünü korumak.

    Bu özelliği uygulamanın temel amacı, veritabanındaki verilerin geçerliliğini artırmaktır. Verilerin güvenilirliği, veri tabanına girildiğinde veya veri tabanına yanlış veri alan ve giren veri işleme prosedürlerinin yasa dışı eylemleri nedeniyle ihlal edilebilir. Sistemdeki verilerin güvenilirliğini artırmak için, bazı durumlarda yanlış verileri “yakalayan” sözde bütünlük kısıtlamaları ilan edilir. Bu nedenle, tüm modern DBMS'lerde, giriş verilerinin yapı oluşturulurken açıklanan türlerine uygunluğu kontrol edilir. Sistem, alana bir karakter girmenize izin vermeyecektir. sayısal tip, geçersiz bir tarih vb. girmenize izin vermez. Gelişmiş sistemlerde bütünlük kısıtlamaları, görevin anlamlı anlamına göre programcı tarafından tanımlanır ve veriler her güncellendiğinde kontrol edilir. Detaylarda

    5. Fiziksel Bütünlük Koruması. Bilgisayarın çalışması sırasında arızalar (örneğin elektrik kesintisi nedeniyle), makine veri taşıyıcılarında hasar meydana gelebilir. Bu durumda, veriler arasındaki bağlantılar kopabilir ve bu da daha fazla çalışmanın imkansızlığına yol açar. Geliştirilen DBMS veritabanı kurtarma araçlarına sahiptir. Kullanılan en önemli kavram “işlem” kavramıdır. işlem veritabanı ile gerçekleştirilen eylemlerin bir birimidir. Bir işlem, birden fazla veritabanı değişiklik ifadesi içerebilir, ancak bu ifadelerin tümü yürütülür veya hiçbiri yürütülmez. DBMS, veritabanının kendisinin bakımına ek olarak bir işlem günlüğü de tutar.

    Veritabanlarında işlemlerin kullanılmasının gerekliliğini basitleştirilmiş bir örnekle gösterelim. Veritabanının bir bankada kullanıldığını ve müşterilerden birinin bankanın başka bir müşterisinin hesabına para transfer etmek istediğini varsayalım. Veritabanı, müşterilerin her birinin sahip olduğu para miktarı hakkında bilgi depolar. Veritabanında iki değişiklik yapmamız gerekiyor - müşterilerin birinin hesabındaki para miktarını azaltın ve buna bağlı olarak diğer hesaptaki para miktarını artırın. Tabii ki, bir bankada gerçek para transferi, birçok tabloyu ve muhtemelen birçok veritabanını içeren çok daha karmaşık bir süreçtir. Bununla birlikte, öz aynı kalır - ya tüm eylemleri tamamlamanız (bir müşterinin hesabını artırmanız ve diğerinin hesabını azaltmanız) gerekir ya da bu işlemlerden hiçbirini gerçekleştirmemelisiniz. Bir hesaptaki para miktarını azaltamaz, ancak başka bir hesaptaki para miktarını artıramazsınız.

    Ayrıca, eylemlerden ilkini gerçekleştirdikten sonra (ilk müşterinin hesabındaki para miktarını azaltma) bir başarısızlık meydana geldiğini varsayalım. Örneğin, istemci bilgisayarın veritabanıyla bağlantısı kesilebilir veya istemci bilgisayar, işletim sisteminin yeniden başlamasına neden olan bir sistem hatası yaşayabilir. Bu durumda veritabanına ne oldu? İlk müşterinin hesabındaki parayı azaltma komutu yürütüldü, ancak diğer hesaptaki parayı artırmaya yönelik ikinci komut uygulanmadı, bu da veritabanının tutarsız, güncel olmayan bir durumuna yol açacaktı.

    İşlem mekanizmasını kullanmak bu ve benzeri durumlarda çözüm bulmanızı sağlar. İlk eylemi gerçekleştirmeden önce, bir işlem başlatma komutu verilir. Bir işlem, bir hesaptan para çekme ve başka bir hesaptaki tutarı artırma işlemini içerir. İşlem tamamlama bildirimi genellikle COMMIT olarak adlandırılır. İlk işlemden sonra işlem tamamlanmadığı için veri tabanında herhangi bir değişiklik yapılmayacaktır. Değişiklikler ancak işlem tamamlandıktan sonra yapılır (taahhüt edilir). Bu bildirimi yayınlamadan önce, veritabanında hiçbir veri depolanmayacaktır. Örneğimizde, işlem taahhüt bildirimi düzenlenmediğinden, veritabanı orijinal durumuna "geri dönecektir" - başka bir deyişle, müşterilerin hesaplarındaki tutarlar, işlem başlamadan öncekiyle aynı kalacaktır. Veritabanı yöneticisi, işlemlerin durumunu izleyebilir ve gerekirse işlemleri manuel olarak "geri alabilir".

    Ek olarak, bariz durumlarda, DBMS bağımsız olarak işlemi "geri almaya" karar verir.

    İşlemler mutlaka kısa olmayabilir. Birkaç saat hatta birkaç gün süren işlemler var. Tek bir işlem içindeki eylem sayısını artırmak, sistem kaynaklarında bir artış gerektirir. Bu nedenle, işlemlerin mümkün olduğu kadar kısa tutulması arzu edilir. Tüm işlemler işlem günlüğüne kaydedilir - hem taahhüt edilir hem de bir "geri alma" ile tamamlanır. Veritabanı yedekleriyle birlikte işlem kaydı, yüksek veritabanı güvenilirliği elde etmenizi sağlar.

    DBMS sunucusunun kurulu olduğu bilgisayardaki donanımsal bir arıza sonucu veritabanının bozulduğunu varsayalım. Bu durumda, son yapılanı kullanmanız gerekir. destek olmak veritabanları ve işlem günlüğü. Ayrıca, veritabanına yalnızca yedekleme oluşturulduktan sonra yapılan işlemleri uygulamanız gerekir. Çoğu modern DBMS, yöneticinin veritabanını bir yedekleme ve işlem günlüğünden yeniden oluşturmasına izin verir. Bu tür sistemlerde bir noktada veri tabanı yedekleme ortamına kopyalanır. Veritabanına yapılan tüm çağrılar programlı olarak değişiklik günlüğüne kaydedilir. Veritabanı yok edilirse, yapılan tüm değişikliklerin değişiklik günlüğünden yedek kopyaya yapıldığı bir geri yükleme prosedürü başlatılır.

    6. Veritabanına erişmek için kullanıcı izinlerini yönetme.

    Farklı kullanıcıların verilerle çalışmak için farklı izinleri olabilir (bazı verilere erişilemez olmalıdır; bazı kullanıcıların verileri güncellemesine izin verilmez, vb.). DBMS, parola ilkelerine veya hakların tanımına dayalı olarak erişim haklarını sınırlamak için mekanizmalar sağlar.

    7. Birkaç kullanıcının çalışmasının senkronizasyonu.

    Oldukça sık olarak, birkaç kullanıcının aynı veriler üzerinde aynı anda bir güncelleme işlemi gerçekleştirdiği bir durum olabilir. Bu tür çarpışmalar, verilerin mantıksal bütünlüğünün ihlaline yol açabilir, bu nedenle sistem, bu verilerle çalışan kullanıcı bu verilerle çalışmayı tamamen bitirene kadar diğer kullanıcıların verileri güncellemesini önleyen önlemler sağlamalıdır. Burada kullanılan ana kavram "engelleme" dir. kilitler Hatalara yol açabileceğinden, farklı kullanıcıların veritabanına aynı anda erişmesini engellemek için gereklidir.

    Bu yasağı uygulamak için DBMS, işlemin kullandığı nesneler üzerinde bir kilit oluşturur. Kilitli kayıt sayısında birbirinden farklı olan tablo, sayfa, satır ve diğerleri gibi farklı kilit türleri vardır.

    Satır kilitleme diğerlerinden daha sık kullanılır - bir işlem bir satıra eriştiğinde, yalnızca bu satır kilitlenir, kalan satırlar değişiklik için kullanılabilir durumda kalır.

    Bu nedenle, veritabanında değişiklik yapma süreci, aşağıdaki eylem dizisinden oluşur: bir işlem başlatma bildirimi verilir, bir veri değişiklik bildirimi yayınlanır, DBMS, ifadeyi analiz eder ve yürütülmesi için gerekli kilitleri ayarlamaya çalışır. kilitleme başarılı olursa, ifade çalıştırılır, ardından bir sonraki işlem operatörü için işlem tekrarlanır. İşlem içindeki tüm ifadelerin başarıyla yürütülmesinden sonra, işlem taahhüt bildirimi yürütülür. DBMS, işlem tarafından yapılan değişiklikleri taahhüt eder ve kilitleri serbest bırakır. İfadelerden herhangi biri başarısız olursa, işlem “geri alınır”, veriler önceki değerleri alır, kilitler serbest bırakılır.

    8. Depolama kaynak yönetimi.

    Veritabanı, bilgisayarın harici belleğinde bulunur. Veritabanında çalışırken yeni veriler girilir (bellek dolar) ve veriler silinir (bellek boşaltılır). DBMS, yeni veriler için bellek kaynaklarını tahsis eder, serbest kalan belleği yeniden dağıtır, harici belleğe yönelik bir istek kuyruğunun bakımını düzenler, vb.

    9. Sistem personelinin faaliyetlerine destek.

    Bir veritabanını çalıştırırken, DBMS parametrelerini değiştirmek, yeni erişim yöntemleri seçmek, depolanan verilerin yapısını (belirli sınırlar dahilinde) değiştirmek ve ayrıca sistem genelinde bir dizi başka eylem gerçekleştirmek gerekli olabilir. DBMS, veritabanı yöneticisi olarak adlandırılan veritabanı sistem personelinin bakımına veritabanı faaliyetlerini desteklemek için bu ve diğer eylemleri gerçekleştirme yeteneği sağlar.

    VTYS sınıflandırması

    DBMS, kural olarak, kullanılan veri modeline (veritabanlarının yanı sıra) göre aşağıdaki türlere ayrılır: hiyerarşik, ağ, ilişkisel ve nesne yönelimli.

    DBMS kullanımının doğasına göre, bunlar ayrılır: kişisel(DBMS) ve çok oyunculu(SUBDM).

    Kişisel DBMS şunları içerir:Görsel FoxPro, paradoks, kesme makinesi, dBase, Erişimve diğerleri.Çok kullanıcılı DBMS, örneğin, DBMS'yi içerir.kehanet Ve Informix.çok kullanıcılı DBMS bir veritabanı sunucusu ve bir istemci parçası içerir, heterojen bir bilgi işlem ortamında çalışır - farklı bilgisayar türleri ve farklı işletim sistemlerine izin verilir. Bu nedenle, VTYS temelinde, istemci-sunucu teknolojisine göre çalışan bir bilgi sistemi oluşturmak mümkündür. Çok kullanıcılı DBMS'nin çok yönlülüğü, bunları desteklemek için gereken yüksek fiyat ve bilgisayar kaynaklarına yansır.

    DBMS, bir veritabanı oluşturmak, sürdürmek ve kullanmak için tasarlanmış bir dizi dil ve yazılım aracıdır.

    Kişisel VTYS kişisel veritabanları ve bunlarla çalışan düşük maliyetli uygulamalar oluşturma ve gerekirse veritabanı sunucusuyla çalışan uygulamalar oluşturma yeteneği sağlar.

    Birçok DBMS'nin kontrol bileşeni, aşağıdaki işlevleri yerine getiren çekirdektir:

    - harici bellekte veri yönetimi;

    - tampon yönetimi rasgele erişim belleği(çalışma hızını artırmak için veritabanından verilerin yüklendiği çalışma alanları);

    - işlem yönetimi.

    işlem - bu, DBMS tarafından bir bütün olarak değerlendirilen, veritabanı üzerindeki bir dizi işlemdir. Altında işlem veritabanı üzerindeki etkisi, onu bir bütünsel durumdan diğerine aktarma olarak anlaşılır. Etki, veritabanı tablolarındaki verilerin değiştirilmesinde ifade edilir.

    Bir işlem kapsamında veritabanında yapılan değişikliklerden biri başarısız olursa, veritabanının işlem başlamadan önceki durumuna geri alınması gerekir. Sonuç olarak, işlem dahilinde veritabanında yapılan tüm değişiklikler aynı anda onaylanır veya hiçbiri onaylanmaz.

    Yürütüldüğünde, işlem başarıyla tamamlanabilir ve DBMS, harici belleğe yapılan değişiklikleri uygular. PC donanımında bir arıza olması durumunda yapılan değişikliklerin hiçbiri veri tabanına yansımaz. İşlem kavramı, veritabanının mantıksal bütünlüğünü korumak için gereklidir.

    Veritabanı bütünlüğünün sağlanması - veritabanının başarılı bir şekilde çalışması için gerekli bir koşul. Veritabanı Bütünlüğü- veri tabanının özelliği, yani veri tabanının, uygulamaların doğru çalışması için gerekli ve yeterli olan eksiksiz ve tutarlı bilgiler içerdiği anlamına gelir. Veritabanının bütünlüğünü sağlamak için, veritabanında depolanan veriler tarafından karşılanması gereken belirli koşullar şeklinde bütünlük kısıtlamaları uygulanır. Bu tür koşullara bir örnek, veritabanında depolanan bilgiler veya ilişkisel veritabanı tablolarında yinelenen girişlerin olmaması nesnelerin özniteliklerinin olası değer aralıklarının kısıtlanmasıdır.

    Güvenlik DBMS'de uygulama programlarının şifrelenmesi, veriler, parola koruması, veritabanına erişim düzeyleri için destek, ayrı bir tablo ile elde edilir.

    DBMS kullanıcısının yeteneklerinin genişletilmesi, grafikler ve diyagramlar oluşturmak için sistemlerin bağlanması ve ayrıca dillerde yazılmış modüllerin bağlanmasıyla sağlanır. programlama.

    Ağ işlemi aşağıdakiler tarafından desteklenir:

    paylaşılan verilere kullanıcı erişimini yönetmek için araçlar, yani farklı DBMS'lerde değişen derecelerde uygulanan dosyaları (tabloları), kayıtları, alanları kilitlemek için araçlar;

    ağda çalışırken veritabanının bütünlüğünü sağlayan işlem mekanizması anlamına gelir.

    ile etkileşim için destek Windows uygulamaları DBMS'nin bir belge gibi diğer uygulamalarla oluşturulan dosyalara depolanan bilgileri gömmesine izin verirKelimeveya bir çalışma kitabındamükemmel, grafik ve ses dahil. Bunu yapmak için DBMS, ortam için geliştirilmiş mekanizmaları destekler.pencereler, örneğin: DDE { dinamik Veri Değişme - dinamik veri alışverişi) veOLE { Nesne bağlama Ve gömme - nesne bağlama ve enjeksiyon).

    Sunum seviyeleri

    Veritabanı oluşturmaya yönelik modern yaklaşımlar, üç seviyeli organizasyonlarını önerir. Veritabanını düzenlemenin bu yolu önerildi Amerikan Ulusal Standartlar Enstitüsü (ANSI) ) ve yaygın olarak kullanılmaktadır.

    Üst (dış) seviyede birçok model olabilir. Bu seviye, bireysel kullanıcıların (uygulamaların) veritabanına bakış açısını belirler. Her uygulama yalnızca ihtiyaç duyduğu verileri görür ve işler.

    Kavramsal düzeyde, veri tabanı, konu alanının tüm dış temsillerini birleştiren en genel biçimde sunulur. Kavramsal düzeyde, veri tabanının oluşturulduğu konu alanının genelleştirilmiş bir modeline sahibiz. Kavramsal temsil yalnızca bir tanesidir. Kavramsal bir model geliştirirken, uygulama ve geliştirme verimliliği özellikleri dikkate alınmadan, verilerin yapılandırılmasına ve ilişkilerin belirlenmesine yönelik çabalar yönlendirilir.

    Dahili (fiziksel) seviye, harici depolama ortamında bulunan gerçek verilerdir. Dahili model, veri yerleşimini, erişim yöntemlerini, indeksleme tekniğini tanımlar.

    Veritabanının üç düzeyli organizasyonu, verilerle çalışırken mantıksal ve fiziksel bağımsızlığa izin verir. Mantıksal bağımsızlık, aynı veri tabanıyla çalışan diğer uygulamaları ayarlamadan bir uygulamayı değiştirebilme yeteneği anlamına gelir.

    Fiziksel bağımsızlık, bu veritabanını kullanan tüm uygulamaların çalışabilirliğini korurken, depolanan bilgilerin bir ortamdan diğerine aktarılması olasılığını ifade eder.

    Veri modellerinin sınıflandırılması

    Veri modeli, verilerin düzenlendiği bir dizi kuraldır.

    Bu çok basit tanım geliştirilebilir. Bir veri modeli, belirli verilere uygulandığında, kullanıcıların ve geliştiricilerin bunları bilgi, yani yalnızca verileri değil, aynı zamanda aralarındaki ilişkileri de içeren bilgiler olarak yorumlamalarına izin veren bir tür soyutlamadır.

    Üç veri modeli grubunu ayırt etmek gelenekseldir: infolojik, datalojik ve fiziksel.

    Şekil.1 Veri modelleri

    bilgibilimsel(anlamsal) model, herhangi bir bilgisayara veya VTYS'ye bağlı olmayan, konu alanının genelleştirilmiş bir açıklamasıdır. Doğal dil, matematiksel formüller, tablolar, grafikler ve diğer araçlar kullanılarak yapılan bu açıklama, veritabanı içeriğinin kullanıcı anketlerinden elde edilen özel görünümleri ile geliştiricilerin gelecekteki uygulamalarda gerekli olabilecek veriler hakkındaki görüşlerini birleştirir.

    Böyle bir insan merkezli model, veri depolama ortamının fiziksel parametrelerinden tamamen bağımsızdır. Bu nedenle, bilgisel model, konu alanını yeterince yansıttığı sürece, yani konu alanında değişiklikler olana kadar değişmemelidir.

    Datalojikmodeller bilgisayar tabanlıdır, belirli DBMS tarafından desteklenirler. Onların yardımıyla DBMS, kullanıcıların depolanan verilere fiziksel konumları hakkında endişelenmeden erişmelerine olanak tanır. Verilere belirli bir VTYS kullanılarak erişildiğinden, veri mantıksal modeller şu terimlerle tanımlanır: veri açıklama dili DBMS'yi kullandı.

    Gerekli veriler, kullanılarak harici depolama aygıtlarında DBMS tarafından bulunur. fiziksel veri modelleri. Fiziksel model, belirli bir işletim ortamında kullanılan harici bellek ve veri depolama yapılarının organizasyonu ile ilgili kategorilerle çalışır.

    Datalojik modeller

    Bu grup, hiyerarşik, ağ, ilişkisel ve nesne yönelimli gibi iyi bilinen modelleri içerir.

    Modellerin sınıflandırılması, açıklamaları geliştirmeden sonra ortaya çıktı ilişkisel model. Bundan önce, veri tabanı mevcut teknolojiler kullanılarak geliştirildi. Ve çok daha sonra, mevcut veritabanlarını analiz ettiler ve teorik açıklamalarını yaptılar.

    Grafik-teorik modeller, gerçek dünyadaki bir dizi nesneyi bir grafik biçiminde yansıtır. Grafiğin türüne bağlı olarak hiyerarşik ve ağ modelleri vardır. Hiyerarşik ve ağ veri modelleri, 20. yüzyılın 60'lı yıllarının başlarında DBMS'de kullanılmaya başlandı. Şu anda, ilişkisel veri modelinden daha az sıklıkla kullanılmaktadırlar.

    Karmaşık veri kümeleriyle çalışmak için matematikçiler hiyerarşik bir veri modeli geliştirdiler. Bu model, diğer datalojik modellerden daha önce ortaya çıktı. IBM tarafından resmi olarak tanınan ilk endüstriyel DBMS'de kullanılan bu veri modelidir.

    Hiyerarşik model, verilerin MS DOS'taki dizinlerin organizasyonuna benzer bir şekilde depolandığını varsayar: tüm dizinler bir ağaç gibi kökte ve dalda başlar. Her dosyanın yalnızca bir yolu vardır, yani bir dizin adı bir dosyaya karşılık gelir.

    Gerçek dünyada, bazı nesneler doğası gereği hiyerarşik yapılardır: bazı nesneler üst nesnelerdir, diğerleri alt nesnelerdir. Hiyerarşi, nesneler arasındaki ilişkileri göstermek için basit ve doğaldır. Farklı bilgi alanlarında kullanılan çok sayıda sınıflandırmayı, örneğin yukarıdaki veri modellerinin sınıflandırmasını hatırlamak yeterlidir. Başka bir örnek, bir işletmenin veri yapısıdır.

    Hiyerarşik bir veritabanında, tüm kayıtlar tek bir kökten dallanır. Bir girişin her zaman yalnızca bir ebeveyni vardır ve kendisi başka bir girişin ebeveyni olabilir.

    Hiyerarşik modelin ana avantajı hızdır. Tablolar arasındaki tüm ilişkiler önceden tanımlanmış ve statik olduğundan, bir veri kümesindeki aramalar ve diğer işlemler çok hızlıdır.

    En önemli dezavantajı esnekliktir. İlişkiler her girişte saklandığından, veriler yalnızca belirli bir bağlamda anlam ifade eder. Diğer bir dezavantaj, bilgisayardan bilgisayara veri aktarmanın zorluğudur. Üçüncü dezavantaj, küresel veri değişikliklerinin neredeyse imkansız olmasıdır. Değişiklik, ebeveyn ve çocuk da dahil olmak üzere her girişin ayrı ayrı değiştirilmesini gerektirir.

    Bu veri modeliyle çalışmak önemli miktarda bilgi içerir. Hiyerarşik bir model kullanan çoğu veri tabanı, düzgün çalışmasını sağlamak için özel olarak eğitilmiş personel gerektirir.

    Veri yönetiminde esneklik sağlamak için ağ modeli önerilmiştir. Bu modelin gelişimi, Amerikalı bilim adamı C. Bachman'dan büyük ölçüde etkilenmiştir.

    Ağ veri modelinin temel ilkeleri 60'ların ortalarında formüle edildi. Ağ veri modelinin referans versiyonu, 70'lerin ortalarında veri tabanı dilleri CODASYL (Veri Sistemi Dilleri Konferansı) üzerine çalışma grubunun raporlarında açıklanmıştır.

    Ağ modeli, bir kayıt için birden fazla grup ilişkisi tanımlamanıza izin vermesi bakımından hiyerarşik olandan farklıdır. Bu model, grup ilişkilerinin sahibi veya üyesi olabilen birçok kayıttan oluşur. Ağ modeli, çeşitli yapılarda aramaya izin verir ve kayıtlar için birden çoğa ilişkiyi korur.

    Hiyerarşik bir veri tabanında olduğu gibi, ilişki bilgisi kayıtlarda saklanır ve önceden tanımlanmalıdır. Bu nedenle, ağ veri modeli hiyerarşik olanla aynı sınırlamalara sahiptir.

    ilişkisel veri modeli

    İlişkisel modelin temel kavramları ve tanımları

    ilişkisel model

    1970 yılında E.F. Codd ( E. F. Codd ) ilişkisel veritabanı modelini tanıttı. Bu modelin konsepti, veritabanındaki verilerin organizasyonunun esnek, dinamik ve kullanımı kolay olması gerektiği gerçeğine dayanmaktadır. Kullanıcı, yalnızca verilerin mantıksal temsili ile çalışmalıdır ve veritabanı yönetim sistemi, verilerin fiziksel yapısıyla ilgilenecektir. Codd, ilişkisel veritabanlarının ana hükümlerini formüle etti.

    İlişkisel model tabloları kullanır ve iki ifadeye dayanır:

    · veritabanı tablolardan ve sadece tablolardan oluşmalıdır. Veritabanının işlemlerini yalnızca tabloların içerikleri belirler;

    · veri tanımlaması ve manipülasyonu, verinin alt seviyede saklanma şeklinden bağımsız olmalıdır. Başka bir deyişle, ilişkisel veritabanı yönetim sistemleri (RDBMS), yalnızca verilerin mantıksal temsiline dayalı kendi yönetim sistemlerini sağlamalıdır.

    Makalesinde Codd, ilişkisel yapılarla başa çıkmak için bir dil tanımladı. Zamanla, bu dil şimdi denilen şeye dönüştü. yapılandırılmış dil istekler SQL (Yapılandırılmış Sorgu Dili).

    Codd, ilişkisel bir DBMS modelinin uyması gereken bir dizi temel kural çıkardı. Toplamda 12 tane var.Gerçekten var olan veritabanları, Codd'un tüm kurallarını tam olarak karşılamıyor. Her geliştirici, ilişkisel modeli kendi yöntemiyle uygular. Sonuç olarak, ilişkisel veritabanlarının özellikleri büyük ölçüde değişir.

    Codd kurallarında 4 kategori vardır:

    1) temel özellikler - veri açıklaması ve programlama dili;

    2) verilere erişim - erişim, depolama ve alma kuralları,

    3) esneklik - verileri değiştirme (değiştirme) kuralları;

    4) bütünlük - verilerin kalitesini ve güvenliğini sağlamaya yönelik kurallar.

    İlişkisel VTYS modelini kullanırken, kullanıcı mantıksal bir veri yapısıyla çalışır. En düşük (fiziksel) seviyeye gitmek için Codd, bir veri sözlüğü kavramını önerdi.

    Bir veri sözlüğü, merkezi bir tablodur ve veritabanı hakkında bir bilgi deposudur, verilerin konumu, alan adları, veri türleri, ilişki haritaları hakkında bilgiler içerir. Veri sözlüğü işletim sistemiyle birlikte çalışır ve tabloları (mantıksal veriler) dosyalara (fiziksel veriler) bağlar.

    Eğitim yoluyla bir matematikçi olan E. Codd, veri işleme için küme teorisi aparatının (birlik, kesişim, fark, Kartezyen ürün) kullanılmasını önerdi. Herhangi bir veri temsilinin, matematikte şu şekilde bilinen özel bir türden iki boyutlu tablolara indirgenebileceğini gösterdi: davranış– ilişki (İngilizce) Bir ilişkisel modelin en küçük veri birimi tek bir veri birimidir. atomik Verilen model için (ayrıştırılamaz) veri değeri. Bu nedenle, bir konu alanında soyadı, ad ve soyadı tek bir değer olarak, diğerinde - üç farklı değer olarak kabul edilebilir.

    ihtisas aynı türden bir dizi atomik değerdir. Domainlerin anlamı şu şekildedir. İki özelliğin değerleri aynı alandan geliyorsa, o zaman bu iki özelliği kullanan karşılaştırmalar muhtemelen mantıklıdır.İki özelliğin değerleri farklı alanlardan geliyorsa, o zaman karşılaştırmaları muhtemelen mantıklı değildir.

    D1, D2, ..., Dn alanlarındaki bir ilişki (hepsinin farklı olması gerekli değildir), bir başlık ve bir gövdeden oluşur.

    başlıköyle sabit bir A1, A2, ..., An öznitelikleri kümesinden oluşur ki, bu Ai öznitelikleri ile onu tanımlayan Di (i=1,2,...,n) alanları arasında bire bir karşılık gelir. onlara.

    Vücut zamanla değişen bir kümeden oluşur demetler, burada her demet, başlıktaki her Ai özelliği için böyle bir çift olan bir dizi nitelik-değer çiftinden (Ai:Vi), (i=1,2,...,n) oluşur. Belirli herhangi bir özellik-değer çifti (Ai:Vi) için Vi, Ai özelliği ile ilişkili tek alan Di'den gelen değerdir.

    ilişki derecesiözelliklerinin sayısıdır. Birinci dereceden bir bağıntıya tekli, ikinci dereceye ikili, üçüncü dereceye üçlü, ... ve n derecesine n-ary denir. ilişki derecesi

    asıl sayı veya güç oranı demetlerinin sayısıdır. Bir oranın kardinal sayısı, derecesinin aksine zamanla değişir.

    Bir ilişki bir küme olduğundan ve kümeler tanım gereği eşleşen öğeler içermediğinden, bir ilişkinin hiçbir iki demeti zamanın herhangi bir noktasında birbirinin kopyası olamaz. R, A1, A2, ..., An öznitelikleri ile bir ilişki olsun. Bir R ilişkisinin K=(Ai, Aj, ..., Ak) öznitelikleri kümesinin, ancak ve ancak zamandan bağımsız iki koşul karşılanırsa, R'nin olası bir anahtarı olduğu söylenir:

    1. Benzersizlik: rastgele verilen bir zamanda, Ai, Aj, ..., Ak için aynı değere sahip iki ayrı R demeti yoktur.
    2. Minimumluk: Ai, Aj, ..., Ak özniteliklerinden hiçbiri, benzersizliği bozmadan K'den hariç tutulamaz.

    Her ilişkinin en az bir olası anahtarı vardır, çünkü en azından tüm niteliklerinin kombinasyonu benzersizlik koşulunu karşılar. Olası anahtarlardan biri (isteğe bağlı olarak seçilir) birincil anahtar olarak alınır. Kalan olası tuşlar, varsa, alternatif tuşlar olarak adlandırılır.

    Yukarıdaki ve diğer bazı matematiksel kavramlar, ilişkisel DBMS'nin oluşturulması, yüksek performanslarını sağlayan uygun dil araçlarının ve yazılım sistemlerinin geliştirilmesi ve veritabanı tasarım teorisinin temellerinin oluşturulması için teorik temel oluşturdu. Bununla birlikte, ilişkisel VTYS'nin toplu kullanıcıları için, bu kavramların gayri resmi eşdeğerleri başarılı bir şekilde kullanılabilir:

    İlişki - Tablo (bazen Dosya),
    Demet - Dize (bazen Kayıt),
    Nitelik – Sütun, Alan.

    Bu, "kayıt"ın "kayıt örneği" ve "alan"ın "alan adı ve türü" anlamına geldiğini varsayar.

    1. Her tablo aynı türden satırlardan oluşur ve benzersiz bir ada sahiptir.

    2. Satırların sabit sayıda alanları (sütunları) ve değerleri vardır (birden çok alana ve yinelenen gruplara izin verilmez). Başka bir deyişle, tablonun bir satır ve bir sütunun kesişimindeki her konumunda, her zaman tam olarak bir değer vardır veya hiçbir şey yoktur.

    3. Tablo satırları, böyle bir tablonun herhangi bir satırını benzersiz bir şekilde tanımlamayı mümkün kılan en az bir değerle birbirinden zorunlu olarak farklıdır.

    4. Tablonun sütunları benzersiz olarak atanan adlardır ve her birinin içine homojen veri değerleri (tarihler, soyadlar, tamsayılar veya parasal tutarlar) yerleştirilir.

    5. Veritabanının tüm bilgi içeriği, açık veri değerleri biçiminde sunulur ve bu sunum yöntemi tek yöntemdir. Özellikle, bir tabloyu diğerine bağlayan özel "bağlantılar" veya işaretçiler yoktur.

    6. Bir tablo üzerinde işlemler yapılırken, bilgi içeriği ne olursa olsun, tablonun satırları ve sütunları herhangi bir sırayla işlenebilir. Bu, tablo adlarının ve sütunlarının yanı sıra satırlarından herhangi birini veya belirtilen özelliklere sahip herhangi bir satır kümesini seçme yeteneği ile kolaylaştırılır.

    Anahtarlar

    İlişkisel teori, verilerin üç kritere göre benzersiz bir şekilde birleştirilmesini gerektirir:

    · bu veri öğesinin saklandığı tablo;

    · bu tablodaki alanın adı;

    · kayıt için birincil anahtarın değeri.

    Birincil anahtar, bir kaydın benzersizliğini garanti eden bir alan veya alanlar grubudur.

    Bir tablo tasarlarken, tablodaki her kaydın benzersiz olduğundan emin olmak için birincil anahtar kadar çok alan seçmelisiniz. Bazı tablolar, her kaydı benzersiz şekilde tanımlayan tek bir alan içerir. Diğer tablolar bir bileşik anahtar gerektirebilir ( bileşik anahtar ), yani alanların birleşiminden oluşan birincil anahtar. Bir tablonun bileşik birincil anahtarı olsa bile, yalnızca bir tane olabilir.

    Birincil anahtar oluşturmak zorunludur. Verilerin genellikle bir doğal anahtarı vardır ( doğal anahtar ). Örneğin, bir Sosyal Güvenlik numarası herhangi bir ABD vergi mükellefini tanımlar; bankalar müşterilerine hesap numaraları verir; hastaneler bir dosya dolabında hastalara numara verir. Bunların tümü - sosyal güvenlik numarası, banka hesabı, dosya dolabı numarası - sırasıyla vergi mükelleflerini, müşterileri ve hastaları benzersiz bir şekilde tanımladıkları için birincil anahtar rolü için en iyi adaylardır.

    Bazı veriler yalnızca benzersiz göründüğünden, bir anahtar seçerken dikkatli olunmalıdır. Örneğin, soyadı ve adı, şirket adı ve sipariş tarihi.

    Veriler bir doğal birincil anahtar içermiyorsa, bir tane oluşturulmalıdır. Yapay bir anahtar yaratmanın farklı yollarını sunan iki düşünce okulu vardır ( yapı anahtarı).

    Birinci ekol, anahtarın verilere mümkün olduğu kadar yakın olması gerektiğini savunur. Örneğin, tablo girişleri paradoks varsayılan olarak otomatik olarak sıralanır ve birincil anahtar tarafından tanımlanan sırayla görüntülenir. Soyadı dört harf artı ilk adın iki harfi artı sıralı olarak atanmış bir numara ile bir anahtar oluşturursanız, sıralama kayıtları alfabetik sırayla gösterecektir. Ancak böyle bir anahtarın sakıncaları da vardır, örneğin soyadını değiştirirken bağlantıları güncellemeniz gerekecektir.

    İkinci okul, anahtarın verilerle hiçbir ilgisi olmaması gerektiğine inanır, sözde vekil anahtar ( Vekil anahtarı ).

    Birincil anahtar mümkün olduğu kadar kısa oluşturulmalıdır. Uzun bir tuş, daha fazla veri girişi hatasına yol açar. İlişkisel bir veritabanı, tablolar arasındaki ilişkileri düzenlemek için birincil anahtarlar kullandığından, hatalı ilişkilerin görünümü veri güvenliğini kötüleştirir. Doğal birincil anahtarın çok uzun olduğu ortaya çıkarsa, yedek anahtar kullanımına geçiş yapılması önerilir. Bu yaklaşım pratikte sıklıkla kullanılır ve benzersiz tanımlayıcı oluşturma olarak bilinir.

    anahtar eleman veri öğesi, diğer veri öğelerinin değerlerini belirlemenin mümkün olduğu bir öğedir. İki veya daha fazla veri öğesi, bir nesneyi benzersiz şekilde tanımlayabilir. Doğru seçim, geçerli bir kavramsal veri modelinin oluşturulmasına katkıda bulunduğundan, anahtar veri öğeleri dikkatli bir şekilde seçilmelidir.

    birincil anahtarbir tablodaki her satırı benzersiz şekilde tanımlayan bir nitelik veya nitelikler grubudur.

    Alternatif(ikincil) anahtar birincil anahtarla eşleşmeyen ve bir nesnenin bir örneğini benzersiz şekilde tanımlayan bir nitelik veya nitelikler grubudur.

    endeksler

    indeksler ayrılmaz parça veritabanı yapıları ve tablolarda bilgi aramayı hızlandırmak için tasarlanmıştır.

    Dizin - bir tablo veya görünümle ilişkili ve içlerinde bilgi aramayı hızlandırmak için tasarlanmış bir yapı. Bir dizin, dizinlenmiş sütunlar adı verilen bir veya daha fazla sütunda tanımlanır. Kaynak tablonun veya görünümün karşılık gelen satırına referanslarla dizinlenmiş sütunun veya sütunların sıralanmış değerlerini içerir. Verileri sıralayarak performans kazanımları elde edilir. Dizinleri kullanmak, arama performansını büyük ölçüde artırabilir, ancak dizinleri depolamak, veritabanında ek alan gerektirir.

    Tablo aramasına örnek olarak, tüm abonelerin alfabetik olarak listelendiği bir telefon rehberi düşünün. Açıkçası, böyle bir rehberde, abonenin adı biliniyorsa bir telefon numarası bulmak çok kolaydır. Öte yandan, bir abonenin adını telefon numarasından bulmak son derece zordur, çünkü rehber telefon numaralarına göre sıralanmamıştır, istediğiniz telefonu basit bir numaralandırma kullanarak aramanız gerekecektir. Böylece, bilgilerin sıralanması aramayı büyük ölçüde kolaylaştırır. Bu ilke indeks sisteminin temelidir.

    Şekil, telefon numarasına göre sıralanmayan girişlere sahip bir telefon rehberini ve bu rehber için oluşturulan indeksi göstermektedir. Dizinin, dizin giriş numaralarının telefon numarasının artan sırasına göre yerleştirildiği bir tamsayılar dizisi olduğu şekilden görülebilir. Bu nedenle, girişler telefon numarasına göre sıralanır ve ayrıntılı arama yerine yarım bölme yöntemini veya ikili ağaç yöntemini kullanabilirsiniz.


    Pirinç. 3. "telefon numarası" alanındaki dizin örneği.

    Bağlantılar

    Bağlantıvarlıklar arasında işlevsel bir bağımlılıktır. Bazı varlıklar arasında bir ilişki varsa, o zaman bir varlıktan gelen gerçekler başka bir varlıktan gelen gerçeklere atıfta bulunur veya bir şekilde bunlarla ilişkilidir. Varlıklar arasında tutarlı işlevsel bağımlılıkların sürdürülmesine bilgi bütünlüğü denir. İlişkiler, ilişkisel modelin "içinde" olduğundan, uygulama bilgi tutarlılığı hem uygulama tarafından hem de DBMS'nin kendisi tarafından gerçekleştirilebilir (bildirimsel referans bütünlüğü ve tetikleyiciler mekanizmaları kullanılarak).

    İlişkiler açıklanırken, farklı tabloların kayıtları arasındaki ilişki ima edilir. Örneğin, birden çoğa ilişkiden bahsediliyorsa, bu, belirli bir tablonun bir kaydının başka bir tablonun birçok kaydıyla ilişkili olduğu anlamına gelir. Hiçbir şekilde bir tabloyu birçok tabloya bağlamak amaçlanmamıştır.

    Tablo kayıtları arasındaki en basit ilişki birebirdir. Bu tür bir ilişki, bağlanan tablolar aynı birincil anahtara sahip olduğunda ortaya çıkar. Çoğu zaman, bu tür bir ilişki, bazıları ikincil olan (çok önemli olmayan) çok sayıda alana sahip bir tablo olduğunda kullanılır. Örneğin, personel departmanındaki bir kişiyle ilgili bir kayıt, soyadı, adı, soyadı, pasaport verileri, otobiyografi vb. Bir otobiyografi, ikincil bilgi olarak sınıflandırılabilir ve birebir ilişki türüyle ek bir tabloya yerleştirilebilir.

    En yaygın bağlantı türü bire çok. Örneğin, müşteri ve siparişler: bir müşteri birçok sipariş verebilir. Bağlantıların yapıldığı alanlar serbest değildir, yani keyfi değerlere sahip olamazlar. Örneğin, bir sipariş "Müşteriler" tablosundaki bir müşteriden bahsetmelidir. "Müşteriler" tablosu açısından bakıldığında, "Müşteri adı" alanı, diğer tabloların alanlarına bağlı olmadığından isteğe bağlı olabilir.

    Bir tablonun tüm anahtar alanları ve başka bir tablonun bazı anahtar alanları birbirine bağlıysa, ilişkinin türü yalnızca birden çoğa olabilir.

    Çoktan çoğa ilişki türü, bir tablonun birincil anahtarına kısmen dahil edilen alanlar ile diğer tablo ilişkili olduğunda ortaya çıkar. Örneğin, "Siparişler" tablosundaki "Ürün Adı" alanı ve "Kesintiler" tablosundaki "Ürün Adı" alanı. Bir ürün birkaç müşteri tarafından sipariş edilebilir ve ürün telif ücretleri, ürünün her satışı için farklı uzmanlara gider ("Rulolar" tablosunun birincil anahtarda iki alanı varsa - ürün adı ve uzman veya ürün adı ve yönetici).

    Birincil anahtarda bulunan alanları kullanarak tabloları bağlama yöntemleri yukarıda ele alınmıştır. Ancak tabloları bağlamanın başka bir yolu daha vardır, bir yandan birincil anahtarda yer almayan alanlar bağlantıya katılabilir, diğer yandan birincil anahtarda yer alan alanlar bağlantıya katılabilir. Bu, ikincil veya yabancı anahtarlar kullanılarak yapılır ( yabancı anahtar ). İkincil anahtar, birincil anahtara dahil olmayan alanlar üzerine kuruludur.

    Böylece, bir ilişki tanımlanırken, bir tablo birincil anahtarın içerdiği alanları kullanarak bağlantı kurar ve diğer tablo, birincil anahtarın tüm alanlarını, bunların bir kısmını veya birincil anahtarda yer almayan alanları kullanabilir.

    Yalnızca birincil anahtara dayalı ilişkilerden farklı olarak, ikincil anahtarın kullanımı üzerine kurulan ilişkilere aday denir. Bu bağlamanın kullanılıp kullanılmayacağına veritabanı geliştiricisinin kendisi karar verir.

    Çoktan bire bir ilişki, temelde tersine çevrilmiş bire çok ilişkidir. İlişki alanlarındaki değerler, kullanılan alanların benzersiz olduğu, yani yalnızca bir kaydın diğerlerini tanımlayabildiği bir tablo ile tanımlanmalıdır.

    Bilgi tutarlılığı alt varlık örneğinin yabancı anahtar değerinin üst varlıktaki birincil anahtar değerleriyle eşleşmesini sağlamaktır. Bilgi tutarlılığı, verileri değiştiren tüm işlemler için kontrol edilebilir.

    Saklı yordam sorguları, prosedürel mantığı (atama ifadeleri, dallanma vb.) ve veritabanında saklanan verileri birleştiren bir programdır. Bu mekanizma, verilerle birlikte, ağ üzerinden veri aktarmadan ve müşteriyle etkileşime girmeden büyük miktarda veri işleme işi gerçekleştiren oldukça karmaşık programları içermenize olanak tanır. Bu durumda veritabanı, sorguları almak ve verileri güncellemek için diğer katmanlarla etkileşime giren, uygulamanın işlevsel olarak bağımsız bir katmanı olabilir.

    Tüzükveritabanına veri değiştirirken veya eklerken belirtilen eylemlerin yürütülmesini çağırmanıza ve böylece içine yerleştirilen verilerin doğruluğunu kontrol etmenize izin verir. Tipik olarak, bir eylem belirli bir prosedüre veya işleve yapılan bir çağrıdır. Kurallar bir alan veya kayıtla ilişkilendirilebilir ve buna göre belirli bir alandaki veya tablo kaydındaki veriler değiştiğinde tetiklenebilir. Veriler silinirken kurallar kullanılamaz. Yalnızca veri girişinin doğruluğu için nispeten basit koşulları kontrol etmenin bir yolu olan kısıtlamaların aksine kurallar, veritabanındaki veri öğeleri arasındaki gelişigüzel karmaşık ilişkileri kontrol etmenize ve sürdürmenize olanak tanır.

    Tetiklemekveri güncellenirken, eklenirken veya silinirken otomatik olarak gerçekleştirilen önceden tanımlanmış bir eylem veya eylem dizisidir. Tetik, veritabanındaki veri değişikliklerini kontrol etmek için güçlü bir araçtır, programcının bu durumda gerçekleştirilmesi gereken işlemleri otomatikleştirmesine yardımcı olur. Tetik, veri güncelleme kuralları kontrol edildikten sonra yürütülür. Ne kullanıcı ne de uygulama tetikleyiciyi etkinleştiremez, kullanıcı veya uygulama veritabanında belirli eylemleri gerçekleştirdiğinde otomatik olarak başlatılır. Tetikleyici aşağıdaki bileşenleri içerir:

    * bir tetikleyicinin oluşturulduğu uygulama için kısıtlamalar;

    * kısıtlamaların kontrol edilmesini gerektiren bir durumun oluşumunu karakterize edecek bir olay. Olaylar genellikle veritabanı durumundaki bir değişiklikle ilişkilendirilir (örneğin, bir tabloya kayıt eklenmesi), ancak ek koşullar da dikkate alınabilir (örneğin, yalnızca negatif değere sahip bir kayıt eklenmesi);

    Tetikleyicileri veritabanı tasarımında kullanmak aşağıdaki faydaları sağlar:

    * tetikleyiciler her zaman karşılık gelen eylemler gerçekleştirildiğinde yürütülür. Geliştirici, bir veritabanı tasarlarken tetikleyicilerin kullanımını düşünür ve verilere erişmek için bir uygulama geliştirirken artık bunları düşünmeyebilir;

    * gerekirse, tetikleyiciler merkezi olarak doğrudan veri tabanında değiştirilebilir. Bu veri tabanı ile çalışan kullanıcı programları modernizasyon gerektirmeyecek;

    * tetikleyicileri kullanan bir veri işleme sistemi, daha az miktarda gerekli değişiklik nedeniyle istemci-sunucu mimarisine daha iyi taşınabilirliğe sahiptir.

    ilişkilerin normalleşmesi ilişkisel bir veri tabanında tabloların ve ilişkilerin optimal yapısını oluşturma sürecidir. Normalleştirme işlemi sırasında, veri öğeleri, nesneleri ve onların ilişkilerini temsil eden tablolar halinde gruplandırılır. Normalleştirme teorisi, belirli bir tablo kümesinin, aynı verileri temsil edebilen diğer tüm tablo kümelerine göre veri eklemek, değiştirmek ve silmek için daha iyi özelliklere sahip olduğu gerçeğine dayanır.

    DBMS Uygulama yazılımının temel işlevleri Uygulama yazılımı, kullanıcılar Veritabanı yönetim sistemi İşletim sistemi Veritabanı Uygulama yazılımı için veritabanına erişim sağlama Veritabanı yönetimi "donanımı"

    DBMS'nin DBMS Yazılım bileşenleri, çekirdeği ve hizmet araçlarını (yardımcı programları) içerir. Ø DBMS çekirdeği, bir veritabanı oluşturmak ve sürdürmek için gerekli ve yeterli olan bir dizi yazılım modülüdür, yani kullanıcı bilgi hizmetinin standart görevlerini çözen evrensel bir parçadır. Ø Hizmet programları, açıklanan konu alanına ve belirli bir kullanıcının gereksinimlerine bağlı olarak kullanıcılara bir dizi ek özellik ve hizmet sağlar. Veri tabanı yönetim sistemi, bir bilgisayar üzerindeki çeşitli uygulamalar için ortak bir veri tabanı oluşturmak, güncel tutmak ve kendisine verilen yetkiler çerçevesinde kullanıcıların bu veride yer alan verilere etkin erişimini sağlamak amacıyla tasarlanmış yazılım sistemidir.

    VTYS'nin Sınıflandırılması Evrensellik derecesine göre VTYS iki sınıfa ayrılır: 1. Genel amaçlı VTYS (ON DBMS) 2. Uzmanlaşmış VTYS (Sp. DBMS). Özel DBMS, mevcut genel amaçlı DBMS'lerden hiçbirinin geliştiricilerin karşılaştığı sorunları tatmin edici bir şekilde çözemediği durumlarda oluşturulur. Bunun birkaç nedeni olabilir: gerekli veri işleme hızına ulaşılamamış olması; DBMS'nin ciddi donanım sınırlamaları altında çalışması gerekir; belirli veri işleme işlevleri için destek gereklidir. Sp. DBMS, belirli bir sorunu çözmek için tasarlanmıştır ve bu çözümün kabul edilebilir parametreleri aşağıdaki şekilde elde edilir: 1. belirli bir konu alanının özelliklerinin bilinmesi nedeniyle, 2. sistemin işlevsel bütünlüğünün azaltılmasıyla.

    DBMS'nin sınıflandırılması Veri depolama ve işlemeyi organize etme yöntemlerine göre, DBMS Ø Merkezileştirilmiş Ø Dağıtılmış olarak ayrılır. İlki, fiziksel olarak tek bir yerde (bir bilgisayarda) depolanan bir veritabanıyla çalışır. Bu, kullanıcının veritabanıyla yalnızca aynı bilgisayarda çalışabileceği anlamına gelmez: erişim uzak olabilir (istemci-sunucu modunda). Çoğu merkezi DBMS, kuruluşun görevini değiştirir uzaktan erişimüzerindeki verilere ağ oluşturma, birçok kullanıcının aynı anda verilere erişimi nedeniyle daha karmaşık hale gelen yalnızca standart işlevlerini yerine getirir. Veri modeline göre hiyerarşik, ağ, ilişkisel, nesne-ilişkisel ve nesne yönelimli DBMS vardır.

    İlişkisel VTYS için gereklilikler (Codd'a göre) 1. 2. 3. Verilerin açık sunumu (Bilgi Kuralı). Bilgiler, hücrelerde depolanan veriler biçiminde sunulmalıdır. Hücrelerde depolanan veriler atomik olmalıdır. İlişkisel bir tablodaki satırların sırası, verilerin anlamını etkilememelidir. Garantili Erişim Kuralı. Her veri öğesinin tablo adı, satır birincil anahtarı ve sütun adı kombinasyonuyla erişilebilir olması garanti edilmelidir. Bilinmeyen değerlerin tam olarak işlenmesi (Sıfır Değerlerin Sistematik Tedavisi). Herhangi bir işlem yapılırken tüm veri türleri için bilinen herhangi bir değer dışındaki bilinmeyen değerler (NULL) desteklenmelidir.

    İlişkisel VTYS için gereklilikler (Codd'a göre) 4. 5. İlişkisel model açısından veri sözlüğüne erişim (İlişkisel Modele Dayalı Dinamik Çevrimiçi Katalog). Veri sözlüğü, ilişkisel tablolar biçiminde saklanmalıdır ve DBMS, standart dil araçları kullanılarak buna erişimi desteklemelidir. Bir dil alt kümesinin tamlığı (Kapsamlı Veri Alt Dil Kuralı). İlişkisel bir veritabanı yönetim sistemi, veriler üzerindeki tüm işlemleri gerçekleştirmenize izin veren tek bir sorgu dilini desteklemelidir: veri tanımlama işlemleri, veri işleme işlemleri, veri erişim kontrolü, işlem yönetimi.

    İlişkisel DBMS gereksinimleri (Codd'a göre) 6. 7. Güncellenmiş görünümler için destek (View Update Rule). Güncellenen görünüm, ilişkisel tabloların desteklediği tüm veri işleme işlemlerini desteklemelidir: alma, ekleme, güncelleme ve silme işlemleri. Üst düzey veri yönetimi işlemlerinin kullanılabilirliği (Üst Düzey Ekleme, Güncelleme ve Silme). Ekleme, güncelleme ve silme işlemleri ilişkisel tablonun yalnızca tek bir satırında değil, herhangi bir satır kümesinde desteklenmelidir.

    İlişkisel VTYS için gereklilikler (Codd'a göre) 8. Fiziksel veri bağımsızlığı (Fiziksel Veri Bağımsızlığı). Uygulamalar, ortamda veri depolamak için kullanılan yöntemlere, ilişkisel veri tabanının bulunduğu bilgisayarların donanımına bağlı olmamalıdır. 9. Mantıksal Veri Bağımsızlığı. Bir uygulamada verilerin sunumu, ilişkisel tabloların yapısına bağlı olmamalıdır.

    İlişkisel VTYS gereksinimleri (Codd'a göre) 10. Bütünlük Bağımsızlığı. Bütünlüğü korumak için gereken tüm bilgiler veri sözlüğünde olmalıdır. DBMS, verilen bütünlük kısıtlamaları üzerinde kontroller yapmalı ve veri bütünlüğünü otomatik olarak korumalıdır. 11. Dağıtım Bağımsızlığı. Veritabanı dağıtılmış olabilir, birkaç bilgisayarda bulunabilir ve bu, uygulamaları etkilememelidir. 12. Dil seviyelerinin koordinasyonu (Subversion Olmama Kuralı). Standart veri dilinden başka bir veriye erişim yolu olmamalıdır. Düşük seviyeli bir veri erişim dili kullanılıyorsa, daha yüksek seviyeli dil tarafından desteklenen güvenlik ve bütünlük kurallarını geçersiz kılmamalıdır.

    VTYS'nin bileşimi ve işlevleri için gereksinimler 1. Verilerin depolanması, alınması ve güncellenmesi. 2. Son kullanıcılara sunulan katalog (SSD). Tipik olarak, sistem kataloğunda aşağıdaki bilgiler saklanır: veri öğelerinin adları, türleri ve boyutları; bağlantı adları; verilere uygulanan bütünlük kısıtlamaları; verilere erişim hakkı verilen kullanıcıların adları; harici, kavramsal ve dahili şemalar ve bunlar arasındaki eşlemeler; işlemlerin sıklığı ve veritabanı nesnelerine erişim sayaçları gibi istatistiksel veriler.

    SDS'ye sahip olmanın faydaları Ø Veriler hakkındaki bilgiler, bu verilere erişimi kontrol etmenizi sağlayacak şekilde merkezi olarak toplanabilir ve saklanabilir. Ø Diğer kullanıcıların amaçlarını anlamalarına yardımcı olacak verilerin anlamını belirleyebilirsiniz. Ø Verilerin anlamının kesin tanımları olduğu için iletişim basitleştirilmiştir. Ø Sistem kataloğu, verilere sahip olan veya verilere erişimi olan bir veya daha fazla kullanıcıyı da listeleyebilir. Ø Merkezi depolama sayesinde, münferit veri öğelerinin açıklamasındaki fazlalık ve tutarsızlık kolayca tespit edilebilir. Ø Veritabanında yapılan değişiklikler loglanabilir. Ø Sistem kataloğu mevcut tüm veri öğelerini, bunlar arasında kurulan ilişkileri ve bunların tüm kullanıcılarını kaydettiğinden, herhangi bir değişikliğin sonuçları yapılmadan önce belirlenebilir. Ø Güvenlik önlemleri daha da güçlendirilebilir. Ø Veri bütünlüğü desteğini organize etmek için yeni fırsatlar var. Ø Saklanan bilgiler denetlenebilir.

    Oracle Sistem Sözlüğü Yapı, bilgi nesneleri ve ilişkiler hakkındaki tüm bilgileri belirli bir veritabanında depolar. Veri sözlüğü, bilgileri sözlük tablolarında da saklanan bir dizi tablo ve yardımcı nesnedir (dizinler, kümeler, eşanlamlılar, görünümler, diziler). Mantıksal olarak, veri sözlüğü şu bölümlere ayrılmıştır: übase tabloları; ü temel tabloların sunumu; ü dinamik tablolar ve temsilleri. Toplamda, veri sözlüğü başka hiçbir yerde olmayan SYSTEM tablo alanında bulunan 100'den fazla temel tablo içerir. Adları "$" sembolünü içerir (bu nedenle temel olmayan nesnelerin adlarında kullanılması önerilmez), örneğin: AUD$ – denetim bilgi tablosu; FILE$ - dosya tablosu; USER$ - kullanıcı tablosu; IND$ - dizin tablosu; OBJ$ – nesnelerin tablosu; SEG$ - segment tablosu; SYN$ - eşanlamlılar tablosu; TAB$ - tablo tablosu; TS$ - tablo alanı tablosu; GÖRÜNÜM $ - tabloyu görüntüleyin.

    Sistem sözlüğü ile çalışma Veri sözlüğünden bilgi almak için, kullanıcılara temel tabloların görünümleri sağlanır. Üç gruba ayrılırlar: DBA - DBA olan, yani DBA rolü atanan kullanıcılara yönelik görünümler. Bu görünümler, veri sözlüğünden en eksiksiz bilgileri sağlar; KULLANICI - her kullanıcının sahip olduğu nesneler hakkında bilgi aldığı temsiller; TÜMÜ - her kullanıcıya erişimine izin verilen nesneler hakkında tüm bilgileri veren görünümler. Örneğin: DBA/ALL/USER_INDEXES – tüm/mevcut/kullanıcı dizinleri; DBA/ALL/USER_IND_COLUMNS – tüm/mevcut/kullanıcı dizin sütunları; DBA/ALL/USER_OBJECTS – tüm/erişilebilir/kullanıcı nesneleri; DBA/ALL/USER_SYNONYMS - tümü/mevcut/kullanıcı eş anlamlıları; DBA/ALL/USER_TABLES – tümü/erişilebilir/kullanıcı tabloları; DBA/ALL/USER_TAB_COLUMNS - tabloların tümü/kullanılabilir/kullanıcı sütunları; DBA/ALL/USER_TAB_PRIVS - tablolardaki tüm/mevcut/kullanıcı ayrıcalıkları; DBA/ALL/USER_VIEWS - tüm/mevcut/kullanıcı görünümleri.

    Sistem sözlüğü ile çalışma Bazı temsiller (uygulamalarının anlamı ile) yalnızca bir veya iki grupta bulunur. Bu, en çok DBA görünümleri için tipiktir, örneğin: DBA_DATA_FILES – fiziksel veritabanı ve günlük dosyaları hakkında veriler; DBA/USER_FREE_SPACE - tablo alanlarında boş bellek (tümü ve belirli bir kullanıcı tarafından kullanılabilir); DBA_PROFILES – sistem kaynaklarının "maliyeti" için seçeneklerin listesi; DBA_ROLES - Veritabanında tanımlanan rollerin listesi. SSD'den veri çıkarma örnekleri: user_tables'tan tablo_adı seçin; all_views arasından * seçin; dba_views'den view_name seçin;

    Sistem Sözlüğü ile Çalışma SÖZLÜK görünümünün DICT eşanlamlısı önemlidir. Veritabanındaki tabloların, görünümlerin, veri sözlüğünün eşanlamlılarının ve varsa açıklamalarının adlarını seçer. İşte küçük bir parça: dict'den * seçin; ALL_CATALOG Kullanıcının kullanabileceği tüm tablolar, görünümler, eş anlamlılar, diziler ALL_DB_LINKS Kullanıcının kullanabileceği veritabanı bağlantıları DBA_OBJECTS Veritabanındaki tüm nesneler DBA_ROLES Veritabanında bulunan tüm roller USER_EXTENTS Kullanıcının sahip olduğu kapsamlar USER_VIEWS Kullanıcının sahip olduğu tanımları görüntüle DUAL Özel tablosu bir DUMMY sütunu ve bir DICT satırı içeren SÖZLÜK SEKMESİ için eşanlamlı USER_TABLES için eşanlamlı

    DBA sistem sözlüğüyle çalışmak, bu tablolara erişim sağlar, ancak AŞIRI gerekli durumlar dışında ASLA bu seviyede çalışmanız önerilmez: tüm veri sözlüğü bilgileri, temel tabloların görünümleri aracılığıyla kullanılabilir; taban tablolardaki veriler, sistem sıralaması içindeki kurallara göre, kod çözmeden tekrarlanmadan sunulur; tablo sütunlarının sayısı, adları, boyutları yeterli görünürlük olmadan yapılmıştır; yanlışlıkla, kasıtlı olarak veya başka herhangi bir nedenle, temel tabloların içeriğini AYARLAMAK (bariz durumlarda bile, örneğin, uzun süredir silinen tablo alanları hakkında veri depolamak), kural olarak, veri sözlüğünde, yani tüm veritabanının KAYBI. En nadir istisna, gereksiz girişlerin periyodik olarak silinmesi gereken AUD$'dır (denetim bilgi tablosu), çünkü denetim modu etkinleştirildiğinde bu tablo hızla dolar ve SYSTEM tablo alanını taşabilir.

    VTYS'nin bileşimi ve işlevleri için gereksinimler 3. 4. 5. 6. 7. 8. 9. İşlem desteği. Paralel operasyon yönetimi hizmeti. Kurtarma Hizmetleri. Veri erişim kontrol hizmetleri. Veri Bütünlüğü Hizmetleri. Veri bağımsızlığı destek hizmetleri. Yardımcı hizmetler.

    Yardımcı Hizmetler Genellikle DBA'ya verimli veritabanı yönetiminde yardımcı olmak için tasarlanmıştır. Bu tür yardımcı programlara bazı örnekler. Bir veritabanını düz dosyalardan yüklemek için içe aktarma yardımcı programları ve bir veritabanını düz dosyalara boşaltmak için dışa aktarma yardımcı programları. Bir veritabanının performansını ve kullanımını izlemek için tasarlanmış izleme araçları. Bir veritabanının performansını veya kullanımını ölçen istatistiksel analiz programları. Taştıklarında dizinleri yeniden oluşturmak için tasarlanmış dizin yeniden düzenleme araçları. Depolama aygıtlarından silinen yazmaları fiziksel olarak temizlemek, boş alanı birleştirmek ve gerektiğinde belleği yeniden tahsis etmek için çöp toplama ve bellek yeniden eşleme araçları.

    DBMS Sorgu İşlemcisinin ana yazılım bileşenleri. Sorguları, veritabanı yöneticisi için bir dizi düşük seviyeli komutlara dönüştürür. Veritabanı yöneticisi. İstekleri kabul eder ve isteğin gereksinimlerini karşılamak için hangi kavramsal kayıtların gerekli olduğunu belirlemek için harici ve kavramsal şemaları inceler. Daha sonra isteği yerine getirmek için dosya yöneticisini çağırır. Dosya Yöneticisi. Veri depolama amaçlı dosyaları yönetir ve kullanılabilir disk alanı ayırmaktan sorumludur. Dahili şemada tanımlanan yapıların ve dizinlerin bir listesini oluşturur ve sürdürür. Karma dosyalar kullanılıyorsa, kayıtların adreslerini oluşturmak için hash işlevlerini çağırmak da onun sorumluluğundadır.

    DBMS DML dil ön işlemcisinin ana yazılım bileşenleri. Bu modül, uygulama programlarına gömülü DML deyimlerini standart temel dil işlevlerine yönelik çağrılara dönüştürür. Uygun kodu oluşturmak için, DML ön işlemcisinin sorgu işlemcisiyle iletişim kurması gerekir. DDL derleyici DDL komutlarını meta verileri içeren bir dizi tabloya dönüştürür. Bu tablolar daha sonra sistem kataloğunda saklanır ve kontrol bilgileri veri dosyalarının başlıklarında saklanır. sözlük yöneticisi. Sistem dizinine erişimi kontrol eder ve onunla çalışmayı sağlar. Sistem kataloğu, çoğu DBMS bileşeni tarafından kullanılabilir.

    DBMS Erişim hakları kontrol modülünün temel yazılım bileşenleri. Bu modül, verilen kullanıcının istenen işlemi gerçekleştirme yetkisine sahip olup olmadığını kontrol eder. Komut işlemcisi. Kullanıcının istenen işlemi gerçekleştirme yetkisi kontrol edildikten sonra, kontrol komut işlemcisine aktarılır. Bütünlük kontrolleri. Veritabanının içeriğini değiştiren işlemler söz konusu olduğunda, bütünlük kontrolleri, talep edilen işlemin belirlenmiş tüm veri bütünlüğü bakım kısıtlamalarını (örneğin, anahtarlar için belirlenen gereksinimler) karşılayıp karşılamadığını kontrol eder. Sorgu iyileştirici. Bu modül, optimum sorgu yürütme stratejisini belirler.

    DBMS Transaction Manager'ın ana yazılım bileşenleri. İşlemlerin yürütülmesi sırasında alınan işlemlerin gerekli işlemlerini gerçekleştirir. Zamanlayıcı. Paralel veritabanı işlemlerinin çakışmadan yürütülmesinden sorumludur. Bireysel işlemlerde işlemlerin talep edildiği göreli sırayı kontrol eder. kurtarma Yöneticisi. Hatalar meydana geldiğinde veritabanının tutarlı bir duruma geri yüklenmesini sağlar. Özellikle, işlemlerin taahhüt edilmesi ve sonuçlarının geri alınmasından sorumludur. arabellek yöneticisi. RAM ile sabit disk veya manyetik bant gibi ikincil bir depolama aygıtı arasında veri aktarımından sorumludur. Kurtarma Yöneticisi ve Tampon Yöneticisi bazen (toplu olarak) Veri Yöneticisi olarak ve Tampon Yöneticisinin kendisi Önbellek Yöneticisi olarak anılır.

    Oracle Veritabanının (DATABASE) ana nesneleri - Oracle veritabanının fiziksel organizasyonunun en üst düzeyinde bulunan bir nesne, adı verilen bir nesnedir: veritabanı (veritabanı). Veritabanı bir veri sözlüğünden, verinin kendisinden ve çeşitli yardımcı nesnelerden oluşur: bir başlatma parametre dosyası, bir kontrol dosyası, bir geri alma segment dosyası ve iki işlem günlüğü dosyası. (Bu liste, örneğin kontrol dosyasının kopyalarıyla genişletilebilir). Veritabanı, Oracle DBMS kurulurken otomatik olarak veya CREATE DATABASE komutu kullanılarak manuel olarak oluşturulabilir. Tablo alanı (TABLESPACE), tüm veritabanı nesnelerini depolamak için tasarlanmış bir bellek alanıdır. Bir tablo alanının bir adı vardır ve bir veya daha fazla işletim sistemi dosyasını kaplar. CREATE TABLESPACE komutu tarafından oluşturulmuştur. Bazen bir tablo alanı, tablo alanı olarak adlandırılır.

    Temel Oracle Nesneleri Bir kullanıcı (USER), istek sunucusu işlevlerinin yanı sıra diğer Oracle nesnelerini oluşturma ve kullanma yeteneğine sahip bir nesnedir. Bu işlevler, bir oturum düzenlemeyi, sunucunun ve veritabanının durumunu değiştirmeyi, başka veritabanı nesneleri oluşturmayı, SQL deyimlerinin yürütülmesini sorgulamayı vb. içerir. Oracle DBMS'de kullanıcı adı şema adıyla aynıdır. CREATE USER komutu tarafından oluşturulur. Her veritabanı nesnesi, onu oluşturan kullanıcıya aittir ve şemasında yer alır. Herhangi bir veritabanı nesnesinin tam adı (veritabanı, tablo alanları ve kullanıcılar hariç), içinde yaratıldığı şemanın adından ve nesnenin gerçek adından oluşur, örneğin: scott. emp Burada scott, kullanıcının adıdır (şema), emp, nesnenin adıdır ("Çalışanlar" tablosu) ve nokta sözdedir. tanım seviyelerini ayıran nitelikli bir referans.

    Temel Oracle Nesneleri Bir küme (KÜME), genellikle birlikte işlenen bilgileri içeren birden çok tabloda verileri birlikte depolamanın bir yolunu tanımlayan bir nesnedir. Kümeleme tabloları, örnekleme süresini azaltmanıza olanak tanır. CREATE CLUSTER komutu ile oluşturulmuştur. Veri tablolarını içerir. Tablo (TABLE), ilişkisel modelin temel yapısıdır. Bildiğiniz gibi bir veritabanındaki tüm bilgiler tablolarda saklanır. Tablolar, birçok adlandırılmış sütun veya öznitelikten oluşur. Bir sütunun değer kümesi, bütünlük kısıtlamaları kullanılarak tanımlanır, yani sınırlı bir etki alanı kavramı (bir dizi geçerli değer) desteklenir. Tablo boş olabilir veya bir veya daha fazla öznitelik değeri satırından oluşabilir. Tablo öznitelik değerlerinin dizelerine ayrıca kayıtlar veya demetler de denir. CREATE TABLE komutu ile oluşturulan, bir küme üzerinde oluşturulabilir.

    Temel Oracle Nesneleri Bir dizin (INDEX), veri alma performansını iyileştirmek için oluşturulmuş bir veritabanı nesnesidir. Bir tablonun sütun(lar)ında indeks oluşturulur ve sütun(lar) verilerini değere göre sıralayarak o tablonun verilerine daha hızlı erişim sağlar. CREATE INDEX komutu tarafından oluşturulur. Kümeler, tablolar ve dizinler, olgu verilerini depoladıkları için bellekte yer kaplayan nesneler olarak adlandırılır. Oluşturulduklarında, bunlara veri eklenerek artırılabilen belirli bir miktarda depolama alanı (bir veya daha fazla kapsam) tahsis edilir. Kapsam, bir tablo alanındaki bitişik bir bellek alanıdır. Aynı nesneyle ilgili tüm uzantılar bir segment oluşturur. Küme Tablosu Dizini

    Temel Oracle Nesneleri Görünüm (GÖRÜNÜM), bir veya daha fazla tablodan adlandırılmış, dinamik olarak tutulan sunucu tarafı veri seçimidir. Bir görünümün merkezinde, görünümün temel sorgusu olarak adlandırılan SELECT deyimi bulunur. Temel istek tanımlar kullanıcı tarafından görülebilir veri. Görünüm, kullanıcının değiştirebileceği verileri sınırlamanıza izin verir. Görünümde hiçbir veri depolanmaz: sunucu, görünümü her erişildiğinde oluşturur (buna görünüm gerçekleştirme denir). Bir güvenlik yöneticisi, görünümleri kullanarak, kullanıcıların kullanabileceği veritabanı bölümünü yalnızca işlerini yapmak için gerçekten ihtiyaç duydukları verilerle sınırlayabilir. GÖRÜNÜM OLUŞTUR komutu tarafından oluşturulur. Dizi (SEQUENCE), çok kullanıcılı eşzamansız erişim koşullarında benzersiz sayıların üretilmesini sağlayan bir nesnedir. Tipik olarak, dizi öğeleri benzersiz eklemek için kullanılır. kimlik numaraları veritabanı tablolarının öğeleri için. CREATE SEQUENCE komutu tarafından oluşturulur.

    Temel Oracle Nesneleri Eşanlamlı (eş anlamlı), veritabanı kullanıcılarının nesneye erişmesine izin veren bir Oracle nesnesi için alternatif bir ad veya takma addır. Bir eşanlamlı özel veya genel olabilir. Genel bir eş anlamlı, tüm veritabanı kullanıcılarının karşılık gelen nesneye alternatif bir adla başvurmasına olanak tanır. Bu durumda, nesnenin sahibi olarak değil, başka bir şemadan bağlanmış olsanız bile, nesneye erişim için şema adının belirtilmesine gerek yoktur. CREATE SYNONYM komutu tarafından oluşturulmuştur. Rol (ROLE), kullanıcılara veya diğer rollere verilebilen, adlandırılmış bir ayrıcalıklar kümesidir. Veri erişim kontrolünü etkin bir şekilde yönetmek için kullanılır. Oracle, birkaç standart veya önceden tanımlanmış rolü (DBA, CONNECT, RESOURCE, vb.) destekler. CREATE ROLE komutu tarafından oluşturulur.

    Temel Oracle Nesneleri Dağıtık sistemlere özgü Oracle nesneleri anlık görüntü ve veritabanı bağlantısıdır. Anlık görüntü (SNAPSHOT), bir tablonun tamamını veya bir kısmını çoğaltmak (kopyalamak) veya birden çok tablodan bir veri sorgusunun sonucunu çoğaltmak için kullanılan uzak bir veritabanı tablosunun yerel bir kopyasıdır. Anlık görüntüler değiştirilebilir veya salt okunur olabilir. Salt okunur anlık görüntüler, temel tablodaki değişiklikleri yansıtmak için periyodik olarak güncellenebilir. Değiştirilen anlık görüntüde yapılan değişiklikler, ana tabloya ve diğer kopyalara yayılır. CREATE SNAPSHOT komutu tarafından oluşturulmuştur. Veritabanı bağlantısı (DATABASE BAĞLANTISI), uzak veritabanı nesnelerine erişmenizi sağlayan bir veritabanı nesnesidir. Veritabanı ilişkilendirme adı, uzak veritabanı erişim mekanizmasının parametrelerine (ana bilgisayar adı, protokol vb.) bir referans olarak düşünülebilir. Tek bir ad kullanmak, uzak veritabanı nesneleri ile çalışmayı kolaylaştırır. CREATE DATABASE LINK komutu tarafından oluşturulmuştur.

    Temel Oracle Nesneleri Oracle, veri işleme algoritmalarını programlamak ve karmaşık veri bütünlüğü kurallarını desteklemek için prosedürel nesneleri kullanır: Prosedür (PROCEDURE), belirli bir veri işleme görevini çözmek için tasarlanmış bir PL/SQL alt programıdır. CREATE PROCEDURE komutu ile oluşturulmuştur. FONKSİYON, belirli bir sorunu çözmek ve belirli bir değer döndürmek için tasarlanmış bir PL/SQL alt programıdır. CREATE FUNCTION komutu tarafından oluşturulur. Bir paket (PAKET), tek bir işlevsel kavramla birbirine bağlanan adlandırılmış, yapılandırılmış değişkenler, prosedürler ve işlevler kümesidir. Bir paket, bir belirtimden ve bir paket gövdesinden oluşur. Spesifikasyon, harici değişkenlerin, sabitlerin, türlerin ve alt programların açıklamalarını içerirken, paket gövdesi, alt programların uygulanmasını ve yalnızca paket içinde bulunan dahili değişkenlerin, sabitlerin ve türlerin açıklamalarını içerir. CREATE PACKAGE komutu ile paket belirtimi, CREATE PACKAGE BODY komutu ile paket gövdesi oluşturulur. Bir tetikleyici (TRIGGER), tetikleyiciyle ilişkili olay meydana geldiğinde otomatik olarak çalışan bir saklı yordamdır. Tipik olarak olaylar, bazı tablolarda INSERT, UPDATE veya DELETE deyimlerinin yürütülmesiyle ilişkilendirilir. CREATE TRIGGER komutu tarafından oluşturulur.

    Oracle Veritabanı Fiziksel Yapı Ortamı Parametreleri: $ORACLE_HOME, Oracle ana dizininin adıdır. $ORACLE_SID, Oracle veritabanının adıdır. Oracle veritabanı şunları içerir: Kontrol dosyaları (ctrl 1$ORACLE_SID.ctl, ctrl 2$ORACLE_SID.ctl, . .) Init$ORACLE_SID an başlatma seçenekleri dosyası. ora Veritabanı yapılandırma parametre dosyası config$ORACLE_SID. ora Günlük dosyalarını değiştir (log 1$ORACLE_SID.dbf, log 2$ORACLE_SID.dbf, . .) Sistem tablo alanı (SYSTEM, system$ORACLE_SID.dbf) Geçici tablo alanı (TEMP, temp$ORACLE_SID.dbf) Kullanıcı verileri için tablo alanı (KULLANICI) , kullanıcı$ORACLE_SID.dbf)

    Oracle SGA Bellek Yapıları, tüm eşgörünüm süreçleri tarafından paylaşılan bellektir. Örnek başına yalnızca bir SGA vardır. Bir işlem için SGA öğelerinde yapılan değişiklikler, o örnekte çalışan tüm işlemler tarafından anında kullanılabilir. Bir Oracle örneği başlatıldığında oluşturulan SGA'nın sabit bir boyutu vardır. Örnek manuel olarak sonlandırılana veya işletim sistemi yeniden başlatılana veya Oracle çökene kadar var olur. SGA'nın ana dahili yapıları şunlardır: bir veri arabelleği önbelleği (Veritabanı Arabelleği Önbelleği), yani veritabanından bilgi depolayan bir dizi ücretsiz, okunmuş ve değiştirilmiş veri bloğu; işlem günlüğü arabelleği (Yeniden Günlük Arabelleği); paylaşılan (ortak) arabellek havuzu (Paylaşımlı Arabellek Havuzu).

    Oracle RAM yapıları. SGA Veri arabelleği önbelleği iki liste içerir: diskten okunan ancak henüz değiştirilmemiş blokların yanı sıra boş veri arabelleklerini içeren, şu anda en az kullanılan blokların listesi (LRU - en az_recently_used); değiştirilmiş (kirli) ancak henüz diske yazılmamış blokların listesi. Lütfen dikkat: "disk-bellek" alışverişi, veri kayıtları ile doluluklarına ve işleme sırasında değiştirilen kayıt sayısına bakılmaksızın her zaman bloklar halinde gerçekleştirilir; Oracle, verilere erişirken önce gerekli verilerin arabellekte olup olmadığını kontrol eder ve yalnızca değilse, diske erişir; diskten okunan veri blokları LRU listesinin en üstüne yerleştirilir. Daha sonra değiştirilirlerse, Oracle bunları daha sonra diske yazmak için "kirli" bloklar listesine aktarır; önbellekte bir sonraki isteği yürütmek için yeterli boş arabellek yoksa Oracle, en az aktif olarak kullanılanlar olarak LRU listesinin "kuyruğundan" blokları kaldırır ve gerekli veri bloklarını yerlerine diskten okur.

    Oracle RAM yapıları. SGA Değişiklik günlüğü arabelleği döngüsel bellektir. Bu arabellek kullanıcı, sistem, hizmet verileri ile veritabanında meydana gelen tüm değişiklikleri alır. Değişiklik günlüğü, acil durumlardan sonra veritabanının durumunu geri yüklemek için tasarlandığından, günlük girişleri, değiştirilen öğelerin "eski" ve "yeni" değerlerini, özellikle bunların sisteme eklenmesi işlemlerinden sonra tüm veri kaydını taşır. veritabanından silmek veya silmek. Veri işleme, günlük arabelleğini taşacak kadar yoğunsa, yani LGWR işleminin (günlük yazma işlemi) verileri arabellekten diske aktarmak için zamanı yoksa Oracle, kullanıcı işlemlerini geri tutmaya başlar. Paylaşılan (paylaşılan) arabellek havuzu şunları içerir: 1. Sözlük Önbelleği: sistem veri sözlüğünden en sık kullanılan (mevcut çalışmada) bilgileri depolar, yani: tablo ve görünüm adları, sütun adları ve veri türleri, kullanıcı ayrıcalıkları ve rolleri, erişim veritabanı nesneleri vb. hakları bir dizi imleç, yani SQL ifadeleri ve PL / SQL blokları için ayrıştırma ve yürütme planlarının sonuçlarını depolayan bellek yapıları.

    Oracle RAM yapıları. PGA, tek bir işlemin çalışması için ayrılmış bir RAM alanıdır. Tamamen bir sürece adanmış ve diğer süreçlerden bağımsız, her örnek süreç için bir PGA olan bir ve yalnızca bir tane vardır. PGA'nın boyutu çalışma sırasında dinamik olarak artabilir. PGA'ya genellikle Süreç Küresel Alanı denir. Oracle işlemi normal bir şekilde sona erdiğinde, tüm PGA belleği işletim sistemine geri döner. Oracle sunucu işleminin PGA'sı şunları içerir: oturumla ilgili değişkenleri ve hizmet bilgilerini içeren bir yığın alanı; SQL ifadelerinin ve PL/SQL bloklarının ayrıştırıldığı, bazen "Kullanıcı Küresel Alanı" (UGA) olarak adlandırılan özel bir SQL alanı. Bu alan fiziksel olarak SGA'da (MTS mimarisinin bir çeşidi) veya PGA'da (özel sunucu mimarisi) bulunur. Önemli olan, özyinelemeli oturumların kendi UGA'larını almamaları, onları oluşturan oturumun UGA'larını paylaşmalarıdır; veri sıralamanın ara sonuçlarını depolamak için geçici bellek olarak gerekli olan isteğe bağlı bir sıralama alanı (sort_area_size boyutunda). Sıralamayı gerçekleştirmek için yeterli ayrılmış bellek yoksa, işlem ilgili tablo alanının geçici bölümünü kullanır.

    Oracle Örnek İşlemleri Bir dizi veritabanı çalışanı arka plan süreçleri ve bir SGA (System Global Area) eşgörünümünün başlangıcında ortaya çıkan, Oracle'ın bir eşgörünümünü oluşturur. Tüm eşgörünüm işlemleri, tek bir DBMS çekirdeğinde ($ORACLE_HOME/bin/Oracle) çalışır. Örnek süreçleri genellikle arka plan (servis, yardımcı, ek) ve sunucu (isteklerin anlamlı bir şekilde işlenmesi) olarak tanımlanır. Oracle'ın çalışması için gereken minimum, aşağıdaki dört arka plan işleminin bir kümesidir: ora_pmon_ - sistemin dahili durumunu izleme süreci ora_dbwr_ - Oracle veritabanına veri yazma süreci ora_lgwr_ - değişikliğe yazma süreci log ora_smon_ - sistem izleme süreci.

    Oracle Instance Processes 1. pmon, bir arka plan izleme işlemidir. Aşağıdakileri izler: sistemdeki işlemlerin durumunu (özellikle, kullanıcıların sunucuya erişimini izler (bağlan) ve sunucu işlemlerini başlatır); sunucu işlemlerinin çökmelerini ve "ölü" bloke edilmesini algılar; kaynakları serbest bırakır, yani kilitleri kaldırır; işlemleri tamamlar, işlemleri etkin listeden kaldırır; kullanıcı işlemlerinin anormal sonlandırma durumlarından sonra veritabanının durumunu (geri alma - geri alma) geri yükler. 2. dbwr - SGA'daki değiştirilmiş bloklar listesinden veritabanına veri blokları yazmanın arka plan işlemi. dbwr aşağıdaki durumlarda çalışmak için "uyanır": değiştirilen bloklar listesinin uzunluğu eşik değerini aştı; boş arabellek listesinde yeni blokları okumak için yeterli bellek yok; sonraki 3 saniyelik zaman aralığının süresi doldu; lgwr arka planda kayıt işlemi, başka bir kontrol noktasının başladığını bildirir.

    Oracle Instance Processes 3. lgwr, veritabanı değişiklik günlüğüne yazmak için bir arka plan işlemidir. İşlem günlüğü şu şekilde çalışır: İşlem ilerledikçe, işlem tarafından yapılan değişiklikleri yeniden oluşturmak için yeterli bilgiyi içeren, redo girişleri adı verilen küçük kayıtlar oluşturulur. ileri alma öğeleri geçici olarak yeniden günlük arabelleğinde saklanır. bir işlemin bitmesi istendiğinde, lgwr işlemi gerekli redo girişlerini işlem günlüğü arabelleğinden okur ve bunları veritabanı işlem günlüğüne yazar. Bir işlem, lgwr işlemi işlem günlüğüne bir ileri sarma girişi yazdığında ve işlemin tamamlandığını işlem günlüğüne kaydettiğinde tamamlanmış kabul edilir. SGA arabelleğindeki veriler aşağıdaki durumlarda diske aktarılır: Bir sonraki işlemin değişikliklerini işlemek için bir COMMIT işlemi gerçekleştirildi; sonraki 3 saniyelik zaman aralığının süresi doldu; SGA'daki günlük arabelleği üçte bir oranında dolu; dbwr işlemi, diske başka bir değiştirilmiş arabellek grubu yazdı.

    Oracle Instance Processes 4.smon, aşağıdakileri gerçekleştiren zorunlu bir sistem izleme sürecidir: önceki başlatma anormal veya anormal bir şekilde sona ererse veritabanının otomatik kurtarılması (ileriye alma); geçici bölümleri gereksiz verilerden kurtarmak; tablo alanlarının bitişik serbest uzantılarının bitişik bölgelerde birleştirilmesi. 5. Arch, çevrimiçi veritabanı değişiklik günlük dosyalarının arşivlenmesi için isteğe bağlı bir arka plan işlemidir. Kopyalama hedefi (disk, teyp, ...) init'teki log_archive_dest parametresi tarafından belirlenir. ora. Arch işleminin bir sonraki günlük dosyasını arşivlemek için zamanı yoksa (örneğin, dosya sistemi dolu ve arşiv dosyasını yerleştirmek için yeterli alan yoksa) ve ona geçiş yapılması gerekiyorsa, Oracle çalışmasını askıya alır ve yürütür. yalnızca günlüğe kaydetmeyen işlemler.

    Oracle Instance Processes 6.ckpt, çevrimiçi taahhüt günlüğüne bir kontrol noktası yazmak için isteğe bağlı bir yardımcı işlemdir. Genellikle kontrol noktaları lgwr yazıyor. ckpt işlemi (checkpoint_process = init.ora dosyasında true) yalnızca lgwr'yi bu özellikten kurtarır. 7. reco - uzak veritabanlarıyla iletişimden sorumlu (yarı) zorunlu süreç. Yeniden oluşturma işlemi başlatılamayabilir (init.ora parametresinde disributed_transaction = 0), ancak bu durumda örnek herhangi bir "veritabanı bağlantısı" kullanamaz. 8. saniye X - yerel veritabanının anlık görüntülerinin otomatik olarak güncellenmesi için bir ila on işlem. Sayı init'te ayarlanır. snapshot_refresh_processes parametresine sahip ora ve snapshot_refresh_interval parametresi bunların ne sıklıkta etkinleştirildiğini belirler. snp işlemleri X, sunucuya atfedilebilir, çünkü diğer (özellikle aynı) veritabanlarıyla iletişim kurarak, veritabanındaki kullanıcı bilgileriyle çalışırlar.

    Oracle Eşgörünüm İşlemleri 9.db. XX - veritabanına yazmak için ek işlemler. Veritabanının performans darboğazı G/Ç ise ve veritabanı fiziksel olarak birden çok diske yayılmışsa, birkaç ek yazma işlemi çalıştırmanız önerilir (ortalama olarak, her disk için bir tane). Ek db sayısı. XX, db_writers parametresi tarafından belirlenir. 10. d. XXX, paylaşılan sunuculara sahip MTS mimarisi değişkenindeki dağıtıcı işlemleridir. Şu anda çalışan dağıtım programlarının sayısı, Oracle'ın iş yoğunluğuna bağlıdır, ancak mts_max_dispatchers parametresi tarafından belirtilen sayıyı geçmez. Her dağıtıcı, yalnızca belirli bir ağa veya dahili protokole hizmet eder. Örneğin: mts_dispatchers="tcp, 1" mts_dispatchers="ipc, 1"

    Oracle Örnek İşlemleri 11. s. XXX - paylaşılan sunucularla MTS mimarisi varyantındaki sunucu işlemleri. Şu anda çalışan sunucuların sayısı, Oracle'ın çalışmalarının yoğunluğuna bağlıdır, ancak mts_max_servers parametresi tarafından belirtilen sayıyı geçmez. Başlarken, Oracle birkaç (mts_servers) sunucu işlemi başlatır ve ardından yük arttıkça veya azaldıkça, ek işlemleri başlatır veya sonlandırır. 12. oracle - büyük olasılıkla başka bir makinede çalışan bazı kullanıcı (belirli bir durumda, snp işlemi) sürecine bireysel olarak hizmet eden özel bir sunucu işlemi. 13. yer. X - paralel bir sunucu ortamında kaynakların karşılıklı kontrolünü sağlayan bir ila on kilitleme işlemi.

    Oracle sunucu mimarileri Tek kullanıcılı bir varyant (ortam örneği MS DOS'tur), şu olguyla karakterize edilir: kullanıcı işlemi, sunucu işlemi ve arka plan işlemleri, işletim sisteminin tek bir görevinde birleştirilir; yalnızca bir veritabanı ve bir Oracle örneği başlatılabilir; dağıtılmış bir veritabanında sunucu olarak çalışamaz. Çok kullanıcılı varyant (bir ortamın bir örneği UNIX'tir) şu olguyla karakterize edilir: kullanıcı, sunucu ve arka plan işlemlerinin işletim sisteminin ayrı görevlerine ayrılması; birden çok veritabanı ve Oracle örneği çalıştırmak mümkündür; dağıtılmış bir veritabanında sunucu olarak çalışmak mümkündür.

    Oracle Sunucu Mimarileri Tek görev varyantı (bir ortam örneği Net.Ware'dir), şu olguyla karakterize edilir: kullanıcı işlemi ve sunucu işlemi, kullanıcı görevi adı verilen, işletim sisteminin tek bir görevini oluşturur; herhangi bir zamanda sunucuda yalnızca bir kullanıcı görevi yürütülebilir; Net 8 (SQL*Net) üzerinden birçok kullanıcının veri tabanına erişimi mümkündür. İki görevli varyant (ortamın bir örneği UNIX'tir) şu olguyla karakterize edilir: kullanıcı işlemi ve hizmet sunucusu işlemi, üzerinde çalışabilecekleri noktaya kadar işletim sisteminin tamamen bağımsız işlemleridir. farklı makineler ve platformlar ("istemci-sunucu" mimarisi); herhangi bir zamanda, sunucu üzerinde birkaç (birçok) kullanıcı ve sunucu işlemi çalışabilir; birçok kullanıcı yerel veritabanlarına Net 8 (SQL*Net) aracılığıyla erişebilir ve yerel kullanıcılar uzak veritabanlarına erişebilir.

    Oracle Sunucu Mimarileri Tek iş parçacıklı mimari veya Ayrılmış sunucu varyantı: Her kullanıcı işlemine, kendisini ve yalnızca veritabanı sorgularını yürüten bir sunucu işlemi atamak neredeyse imkansızdır. Paralel sunucu (ortam - küme sistemleri, örneğin, RM-1000): her küme işlemcisinin, ayrı bir SGA alanı ve bir dizi sistem işlemi içeren kendi Oracle örneği vardır; her örnek kendi değişiklik günlüklerini tutar; veritabanı ve kontrol dosyaları tüm örneklerde ortaktır; birçok kullanıcı her bir örneğe bağlanabilir; her örnek ayrı olarak adreslenebilir ve dağıtılmış bir sistemin parçası olarak bağımsız olarak çalışabilir.

    Oracle sunucu mimarileri Çok iş parçacıklı mimari (MTS - Multi-Tread Server), paylaşılan sunuculara sahip bir değişken şu şekilde karakterize edilir: kullanıcı işlemlerinden gelen istekleri kabul eden ve sunucu işlemleri tarafından gerçekleştirilen isteklerin sonuçlarını onlara geri gönderen dağıtıcı işlemlerinin varlığı; SGA'da mevcudiyet: tüm sunucu işlemleri için, göndericilerin kullanıcılardan gelen hizmet isteklerini yerleştirdiği bir giriş sırası; dağıtıcı tarafından her işleme atanan, sunucuların yerleştirildiği ve göndericilerin yürütme veritabanı sorgularının sonuçlarını buradan kullanıcılara ilettiği birkaç çıktı kuyruğu; daha önce PGA sunucu süreçlerinde barındırılan Oracle özel SQL alanlarının SGA örneğine geçiş; çalışan dağıtıcıların ve sunucu işlemlerinin mevcut sistem yüküne bağlı olarak dinamik değişim; ne dağıtıcılar ne de sunucular herhangi bir kullanıcı işlemine atanmaz: istekler geldikleri anda yerine getirilir; adanmış ve paylaşımlı sunucuların eşzamanlı çalışma olasılığı.

    Bir veri bankası, verilerin merkezi olarak toplanması ve bunların elektronik bilgisayarlar yardımıyla kullanılması için tasarlanmış bir dizi veri tabanının yanı sıra yazılım, dil ve diğer araçlar olarak anlaşılmaktadır.

    Veri bankası, bir veya daha fazla veri tabanı, bir veri tabanı dizini, bir veri tabanı yönetim sistemi (DBMS) ile sorgu kitaplıkları ve uygulama programları içerir.

    Veri bankası, büyük miktarda bilgi depolamak, gerekli bilgi ve belgeleri hızlı bir şekilde aramak için tasarlanmıştır.

    Abone sisteminde, kişisel bilgisayardan süper bilgisayara kadar herhangi bir kapasitede bir veri bankası oluşturulur. Ancak en büyük veri bankasının bile yetenekleri sınırlıdır. Bu nedenle, ağdaki bankalar bilim, teknoloji ve ürünlerin belirli alanlarında bilgi toplayarak uzmanlaşırlar. Bankanın çekirdeği veritabanları ve bilgi tabanlarıdır. Veritabanı, bilgi depolamak için organize bir yapıdır. Veri ve bilgi birbiriyle ilişkili kavramlardır, ancak aynı değildir, bu tanımda bir tutarsızlık fark etmeliyim. Günümüzde çoğu veritabanı yönetim sistemi (DBMS), yapılarına yalnızca verileri değil, aynı zamanda yöntemleri de (yani, programlama kodu), yardımı ile tüketici veya diğer yazılım ve donanım sistemleri ile etkileşim vardır. Böylece modern veritabanlarının sadece veriyi değil bilgiyi de sakladığını söyleyebiliriz.

    BnD'nin sahip olduğu özel araçlar, kullanıcıların verilerle (DBMS) çalışmasını kolaylaştırır.

    Merkezi veri yönetiminin geleneksel bir dosya sistemine göre avantajları vardır:

    — veri depolama fazlalığının azaltılması;

    - IS'nin geliştirilmesi, işletilmesi ve modernizasyonu için emek yoğunluğunun azaltılması;

    Kullanıcılar olarak verilere kolay erişim sağlama

    — veri işleme alanındaki profesyoneller ve son kullanıcılar.

    BND için temel gereksinimler:

    - konu alanının gösteriminin yeterliliği (tamlık, bütünlük ve - verilerin tutarlılığı, bilgilerin uygunluğu;

    - farklı kategorilerdeki kullanıcılar arasında etkileşim olasılığı, yüksek veri erişimi verimliliği;

    - arayüzlerin kolaylığı, kısa eğitim süresi;

    - farklı kullanıcılar için verilere erişimin gizliliğinin ve farklılığının sağlanması;

    — depolama ve veri korumanın güvenilirliği.

    Veri Bankası teriminin tanımı, 28 Şubat 1996 tarih ve 226 sayılı Rusya Federasyonu Hükümeti Kararnamesi ile onaylanan Devlet Muhasebesi ve Veritabanlarının ve Veri Bankalarının Kaydına İlişkin Geçici Yönetmelikte verilmiştir (SZ RF, 1996) , Sayı 12, Madde 1114)

    Başlangıçta (60'ların başında) bir dosya depolama sistemi kullanıldı. Az miktarda veri ve önemli miktarda hesaplama ile karakterize edilen ağırlıklı olarak mühendislik problemlerini çözmek için, veriler doğrudan programda saklandı. uygulamalı seri yol verilerin organizasyonu, yüksek fazlalıkları, mantıksal ve fiziksel yapıların kimliği ve verilerin tamamen bağımlılığı vardı. Büyük miktarda veri ve küçük bir hesaplama oranı ile karakterize edilen ekonomik ve yönetim görevlerinin (yönetim bilgi sistemi - MIS) ortaya çıkmasıyla, bu veri organizasyonunun verimsiz olduğu ortaya çıktı. Görünüşe göre iki kritere göre gerçekleştirilebilecek veri sıralaması gerekliydi: kullanım (bilgi dizileri); depolama (veritabanları). Başlangıçta bilgi dizileri kullanıldı, ancak veritabanlarının üstünlüğü kısa sürede netleşti. Dosyaların yalnızca veri depolamak için kullanılması, 1959'da McGrey tarafından önerildi. Bu tür dosyalara erişim yöntemleri (rastgele dahil) geliştirildi, fiziksel ve mantıksal yapılar zaten farklıydı ve verilerin fiziksel konumu, mantıksal gösterimi değiştirmeden değiştirilebilirdi.

    1963'te S. Bachman, hala veri fazlalığı ve yalnızca bir uygulama için kullanımı ile karakterize edilen bir ağ veri modeliyle ilk endüstriyel IDS veritabanını oluşturdu. Verilere erişim uygun kullanılarak gerçekleştirildi yazılım. 1969'da, ağ veri modeli için CODASYL standartlar setini oluşturan bir grup kuruldu.

    Aslında modern bir veri tabanı mimarisi kullanılmaya başlandı. Mimari, herhangi bir öğenin, girdi ve çıktılarının özellikleri ilk öğeyle aynı olan başka bir öğeyle değiştirilebildiği bir yapının bir türü (genellemesi) olarak anlaşılır. 1970 yılında M. Codd tarafından önerilen ilişkisel veri modeli paradigması, veritabanı teknolojisinin geliştirilmesinde önemli bir sıçrama sağladı. Bir paradigma, gerçekliğin temel özelliklerini yansıtan bir kavramlar sisteminde somutlaşan bilimsel bir teori olarak anlaşılmaktadır. Artık mantıksal yapılar aynı fiziksel verilerden elde edilebilir, yani. aynı fiziksel verilere farklı uygulamalar tarafından farklı yollardan erişilebilir. Verilerin bütünlüğünü ve bağımsızlığını sağlamak mümkün hale geldi.

    1970'lerin sonunda, fiziksel ve mantıksal bağımsızlık, veri güvenliği sağlayan ve gelişmiş veritabanı dillerine sahip modern DBMS'ler ortaya çıktı. Son on yıl, özellikleri tasarım otomasyon araçlarının uygulamaları ve veritabanı entelektüelleştirmesi tarafından belirlenen dağıtılmış ve nesne yönelimli veritabanlarının ortaya çıkmasıyla karakterize edilir.

    Veritabanı yönetim sistemi kavramı, veritabanı kavramıyla yakından ilgilidir - yeni bir veritabanının yapısını oluşturmak, onu içerikle doldurmak, içeriği düzenlemek ve bilgileri görselleştirmek için tasarlanmış bir dizi yazılım aracı. Veritabanı bilgilerinin görselleştirilmesi, görüntülenen verilerin belirli bir kritere göre seçilmesi, sıralanması, tasarımı ve ardından bir çıktı cihazına verilmesi veya iletişim kanalları üzerinden iletilmesi olarak anlaşılmaktadır.

    Dünyada birçok veri tabanı yönetim sistemi bulunmaktadır. Farklı nesnelerle farklı şekilde çalışabilmelerine ve kullanıcıya çeşitli işlevler ve araçlar, çoğu DBMS, tek bir iyi kurulmuş temel kavramlar grubuna dayanmaktadır. Bu bize bir sistemi ele alma ve kavramlarını, tekniklerini ve yöntemlerini tüm DBMS sınıfına genelleme fırsatı verir.

    DBMS, bilgilerin depolanmasını uygun olacak şekilde düzenler:

    Araştır,

    doldurmak,

    değiştirmek,

    ihtiyacınız olan bilgileri arayın

    herhangi bir seçim yapmak

    herhangi bir sırayla sıralayın.

    Veritabanı sınıflandırması:

    a) saklanan bilgilerin doğası gereği:

    Faktörografik (dosya dolapları),

    Belgeseller (arşivler)

    b) veri depolama yöntemiyle:

    Merkezi (bir bilgisayarda depolanır),

    Dağıtılmış (yerel ve küresel bilgisayar ağlarında kullanılır).

    c) veri organizasyon yapısına göre:

    Tablo (ilişkisel),

    Hiyerarşik,

    Modern DBMS, yalnızca metin ve grafik bilgilerini değil, aynı zamanda ses parçalarını ve hatta video klipleri de dahil etmeyi mümkün kılar.

    DBMS'nin kullanım kolaylığı, programlamaya başvurmadan yalnızca yerleşik işlevleri kullanarak yeni veritabanları oluşturmanıza olanak tanır. DBMS, verilerin doğruluğunu, eksiksizliğini ve tutarlılığını ve bunlara kolay erişimi sağlar.

    Popüler DBMS'ler FoxPro, Access for Windows, Paradox'tur. Daha az karmaşık uygulamalar için, DBMS yerine aşağıdaki işlevleri yerine getiren bilgi alma sistemleri (IPS) kullanılır:

    büyük miktarda bilginin depolanması;

    gerekli bilgiler için hızlı arama;

    saklanan bilgilerin eklenmesi, silinmesi ve değiştirilmesi;

    insan dostu bir biçimde çıktı alın.

    Veritabanlarındaki bilgiler, ilgili veri öğeleri grubu olarak adlandırılan ayrı kayıtlar halinde yapılandırılmıştır. Kayıtlar arasındaki ilişkinin doğası, iki ana veritabanı organizasyonu türünü belirler: hiyerarşik ve ilişkisel.

    Veritabanında veri yoksa (boş bir veritabanı), o zaman hala tam teşekküllü bir veritabanıdır. Bu gerçek metodolojik öneme sahiptir. Veritabanında veri olmamasına rağmen, içinde hala bilgi vardır - bu, veritabanının yapısıdır. Veri girme ve veritabanında saklama yöntemlerini tanımlar. Veritabanının en basit "bilgisayar dışı" versiyonu, her takvim gününe bir sayfa tahsis edilen bir iş günlüğüdür. İçinde tek bir satır bile yazılmasa bile defter, çalışma kitabı ve diğer kırtasiye ürünlerinden net bir şekilde ayrılan bir yapıya sahip olduğu için günlük olmaktan çıkmaz.

    Veritabanları çeşitli nesneler içerebilir, ancak herhangi bir veritabanının ana nesneleri tablolarıdır. En basit veritabanında en az bir tablo bulunur. Buna göre, en basit veritabanının yapısı, tablosunun yapısına özdeştir.

    Halihazırda elektronik ticaret sistemlerinin (ECS) sayısında hızlı bir büyüme yaşanmaktadır. E-ticaret, İnternet'in istisnai iletişim özellikleri nedeniyle onu daha önce bilinen tüm klasik ticaret yöntemlerinden keskin bir şekilde ayıran bir dizi ayırt edici özelliğe sahiptir.

    E-ticaret sistemleri, çok sayıda iş uygulamasındaki ticari işlemleri koordine edebilmeli, çeşitli kaynaklardan bireysel bilgi parçalarını çıkarabilmeli, bunları müşteriye zamanında ve sorunsuz bir şekilde teslim edebilmelidir. gerekli bilgi, — tümü tek bir kullanıcı Web isteği ile.

    SEC, onları klasik ticaret sistemlerinden (sıradan mağazalar, süpermarketler, borsalar vb.) ayıran bir dizi spesifik özelliğe sahiptir. Aynı zamanda, ayrı bir sistemin optimal kontrolünün optimizasyon probleminin klasik formülasyonu uygun olmadığından, SEC'de süreç modelleri oluşturulurken ve analiz edilirken bu özellikler dikkate alınmalıdır. Dolayısıyla, SEC'in özellikleri: Kesin olarak düzenlenmiş bir çalışma programının olduğu klasik sistemlerin aksine, çalışma süresi sınırsızdır. Ziyaretçi akışının zaman içinde dengeli bir şekilde dağıldığını söyleyebiliriz. SEC'deki klasik sistemlerin aksine (bu özellikle B2C sınıfı sistemler için tipiktir), ziyaretçiler yalnızca alışveriş için değil, aynı zamanda bazı bilgiler almak için de gelir: ürün çeşitleri, fiyatlar, ödeme koşulları ve malların teslimatı hakkında bilgi almak için.

    Aynı zamanda, klasik sistemler, ziyaretçilerin alıcı olma ihtimalinin yüksek olduğu bir özellik ile karakterize edilir. Bu nedenle, SEC'in işleyişinin etkinliğini değerlendirmek için çeşitli model ve yöntemleri göz önünde bulundurmak mümkündür: alıcı sayısının ziyaretçi sayısına oranı, SEC çalışmasının etkisi ve SEC'in girdi akışı üzerindeki geri bildirim. uygulamalar.

    Pek çok ziyaretçinin bilgi almak için oraya birkaç kez gelmesi ve ancak tüm koşullardan memnun kaldıktan sonra bir satın alma işlemi gerçekleştirmesi SEC için tipik bir durumdur.

    SEC, aynı anda yeterli sayıda ziyaretçiye hizmet verebilir. Bu özellik, yalnızca SEC'in yazılım ve donanım yetenekleri ile sınırlıdır. Yani, SEC durumunda, kullanıcının bakış açısından hizmet bekleme kuyrukları yoktur. Bu, özellikle tamamen veya kısmen otomatikleştirilmiş PES için geçerlidir.

    SEC'de, sanal bir sepette ürün toplayan bir ziyaretçinin satın alma yapmadan sistemden ayrılması durumu mümkündür (bu durumda, tüm ürünlerin sistemde kalması doğaldır, çünkü onları çalmak imkansızdır). . Klasik ticaret sistemleriyle bir benzetme yaparak, bir mağazaya giren bir ziyaretçinin önce mallarla dolu bir arabayı yüklediği ve ardından her şeyi boşaltıp mağazadan ayrıldığı bir durumu hayal etmek yine zordur. SEC'de, bu durum, kontrol faktörleri kümesi optimal değilse (veya optimalin altındaysa) mümkündür.

    Veritabanı yönetim sistemleri, büyük miktardaki bilgileri bir araya getirip işlemenize, sıralamanıza, belirli kriterlere göre seçimler yapmanıza vb. olanak sağlar.

    Modern DBMS, yalnızca metin ve grafik bilgilerini değil, aynı zamanda ses parçalarını ve hatta video klipleri de dahil etmeyi mümkün kılar. DBMS'nin kullanım kolaylığı, programlamaya başvurmadan yalnızca yerleşik işlevleri kullanarak yeni veritabanları oluşturmanıza olanak tanır. VTYS, verilerin doğruluğunu, eksiksizliğini ve tutarlılığını sağlar.

    1.2 İlişkisel veritabanları

    İlişkisel DBMS (RDBMS; aksi takdirde İlişkisel Veritabanı Yönetim Sistemi, RDBMS), ilişkisel veritabanlarını yöneten bir DBMS'dir.

    İlişkisel kavramı (eng. İlişki - ilişki), veri tabanı sistemleri alanında tanınmış bir İngiliz uzmanı Edgar Codd'un (Edgar Codd) gelişimi ile ilişkilidir.

    Bu modeller, basit bir veri yapısı, kullanıcı dostu bir tablo gösterimi ve veri işleme için ilişkisel cebir ve ilişkisel hesabın resmi aygıtını kullanma yeteneği ile karakterize edilir.

    İlişkisel model, verileri iki boyutlu tablolar biçiminde düzenlemeye odaklanır. Her ilişkisel tablo iki boyutlu bir dizidir ve aşağıdaki özelliklere sahiptir:

    – tablonun her elemanı bir veri elemanıdır;

    - tablodaki tüm sütunlar homojendir, yani sütundaki tüm öğeler aynı türe sahiptir (sayısal, karakter vb.);

    – her sütunun benzersiz bir adı vardır;

    – tabloda aynı satırlar yok;

    – satırların ve sütunların sırası isteğe bağlı olabilir.

    İlişkisel VTYS'nin temel kavramları şunlardır: 1) öznitelik; 2) ilişkiler; 3) demet.

    Bu nedenle bir veritabanı, bir tablo koleksiyonundan başka bir şey değildir. RDBS ve kayda yönelik sistemler, B-Tree standardına veya Dizinlenmiş Sıralı Erişim Yöntemine (ISAM) dayalı olarak düzenlenmiştir ve çoğu modern sistemde kullanılan standart sistemlerdir. yazılım ürünleri. SQL (IBM), Quel (Ingres) ve RDO (Digital Equipment) gibi diller, çoğu B-Tree ve ISAM yazılım uygulamasında neredeyse tamamen bulunmayan veriler arasındaki ilişkileri tanımlamak için tablo kombinasyonları sağlamak için kullanılır ve endüstri standardıdır. şu anda tüm ilişkisel DBMS satıcıları tarafından desteklenen SQL dili haline geldi.

    SQL'in orijinal sürümü, veritabanları üzerinde işlem gerçekleştirmek için tasarlanmış yorumlanmış bir dildir. SQL dili, 70'lerin başında, o zamanlar için yeni olan ilişkisel teoriye dayalı veritabanlarıyla etkileşim için bir arayüz olarak oluşturuldu. Gerçek uygulamalar genellikle SQL kodu üreten ve ASCII metni olarak DBMS'ye ileten diğer dillerde yazılır. Şu anda en son sürümde SQL2 (veya SQL-92) olarak bilinen ANSI SQL standardını uygulamanın yanı sıra, neredeyse tüm gerçek ilişkisel (ve yalnızca ilişkisel değil) sistemlerin ek uzantılar içerdiğine de dikkat edilmelidir, örneğin destek istemci-sunucu mimarisi veya uygulama geliştirme araçları için.

    Tablo satırları, veritabanı tarafından önceden bilinen alanlardan oluşur. Çoğu sistemde yeni veri türleri ekleyemezsiniz. Tablodaki her satır bir girişe karşılık gelir. Belirli bir satırın konumu, yeni satırların silinmesi veya eklenmesiyle birlikte değişebilir.

    Bir öğeyi benzersiz bir şekilde tanımlamak için, öğenin tablo içinde benzersiz olmasını sağlamak üzere bir alanla veya bir dizi alanla ilişkilendirilmelidir. Böyle bir alan veya alanlar, tablonun birincil anahtarı olarak adlandırılır ve genellikle bir sayıdır. Bir tablo diğerinin birincil anahtarını içeriyorsa bu, farklı tabloların öğeleri arasındaki ilişkiyi düzenlemenize olanak tanır. Bu alana yabancı anahtar denir.

    Bir tablonun tüm alanlarının sabit sayıda önceden tanımlanmış türde alan içermesi gerektiğinden, yabancı anahtarlar kullanan öğelerin bireysel özelliklerini hesaba katan ek tablolar oluşturmak gerekir. Bu yaklaşım, veritabanında herhangi bir karmaşık ilişkinin oluşturulmasını büyük ölçüde karmaşıklaştırır. İlişkisel veritabanlarının bir diğer önemli dezavantajı, bilgileri manipüle etmenin ve ilişkileri değiştirmenin yüksek karmaşıklığıdır.

    İlişkisel veritabanlarının eksikliklerine rağmen, bir takım avantajları vardır:

    tabloların farklı programlarla ayrılması;

    hatalarda genişletilmiş "dönüş kodu";

    yüksek istek işleme hızı (komut Dil Seçin SQL seçimin sonucu, belirtilen ölçütleri karşılayan alanları içeren bir tablodur);

    nesne veritabanları konsepti oldukça karmaşıktır ve programcılar tarafından ciddi ve uzun süreli eğitim gerektirir;

    büyük miktarda veriyle çalışırken nispeten yüksek hız.

    Ek olarak, dünya çapında ilişkisel veritabanlarına önemli miktarda fon yatırılmıştır. Birçok kuruluş, nesne veritabanlarına geçişle ilgili maliyetlerin karşılığını alacağından emin değil.

    Bu nedenle, birçok kullanıcı, ilişkisel veritabanlarını tamamen terk etmeden nesne veritabanlarının avantajlarından yararlanmalarına izin verecek hibrit bir yaklaşımla ilgilenmektedir. Bu tür çözümler var. İlişkisel veritabanından nesne veritabanına geçiş çok pahalıysa, ikincisini ilişkisel DBMS'ye bir uzantı ve ekleme olarak kullanmak genellikle daha ekonomik bir alternatiftir. Takaslar, nesneler ve ilişkisel tablolar arasında bir denge kurmanıza olanak tanır.

    Nesne İlişkisel Bağdaştırıcılar - e Bu yöntem, yazılım nesnelerini otomatik olarak tahsis eden ve bunları ilişkisel veritabanlarında saklayan nesne-ilişkisel bağdaştırıcının kullanımını içerir. Nesne yönelimli bir uygulama, sıradan bir DBMS kullanıcısı gibi çalışır. Bazı performans cezalarına rağmen, bu seçenek programcıların tamamen nesne yönelimli geliştirmeye konsantre olmalarını sağlar. Ayrıca kuruluştaki tüm mevcut uygulamalar, ilişkisel biçimde saklanan verilere erişmeye devam edebilir.

    GemStone Systems'den GemStone gibi bazı nesne DBMS'leri, nesne yönelimli uygulamaların ilişkisel veritabanlarına erişmesine izin vererek, kendileri güçlü nesne-ilişkisel bağdaştırıcılar olarak hareket edebilir.

    Hewlett-Packard'ın Oracle DBMS için Odapter'ı gibi nesne-ilişkisel bağdaştırıcılar, nesne yönelimli uygulamaları ilişkisel DBMS'lerle bütünleştiren ara katman yazılımı gibi birçok alanda başarıyla kullanılabilir.

    Nesne-ilişkisel ağ geçitleri - p Bu yöntemi kullanırken, kullanıcı OODBMS dilini kullanarak veritabanıyla etkileşime girer ve ağ geçidi, bu dilin tüm nesne yönelimli öğelerini ilişkisel bileşenleriyle değiştirir. Yine, bu performans pahasına gelir. Örneğin, ağ geçidinin nesneleri bir dizi ilişkiye dönüştürmesi, nesnelerin orijinal tanımlayıcılarını (orijinal tanımlayıcı - OID) oluşturması ve bunu ilişkisel veritabanına aktarması gerekir. Ağ geçidi daha sonra, RDBMS arabirimi her kullanıldığında, veritabanında bulunan OID'yi RDBMS'de saklanan karşılık gelen nesneye çevirmelidir.

    Tartışılan iki yaklaşımdaki performans, ilişkisel veritabanına nasıl erişildiğine bağlıdır. Her RDBMS iki katmandan oluşur: bir veri yöneticisi katmanı ve bir depolama yöneticisi katmanı. Bunlardan ilki SQL dilinde ifadeleri işler ve ikincisi veri tabanındaki verileri görüntüler. Ağ geçidi veya bağdaştırıcı, hem veri katmanıyla (yani, SQL kullanarak RDBMS'ye erişerek) hem de ortam katmanıyla (düşük düzeyli prosedür çağrıları kullanarak) etkileşim kurabilir. İlk durumda performans çok daha düşüktür (örneğin, Hewlett-Packard'ın ağ geçidi görevi görebilen OpenODB sistemi onu yalnızca yüksek düzeyde destekler).

    Hibrit VTYS - e Başka bir çözüm, hem geleneksel tablo verilerini hem de nesneleri depolayabilen hibrit bir nesne-ilişkisel VTYS oluşturmak olacaktır. Birçok analist, geleceğin bu tür hibrit veritabanlarına ait olduğuna inanıyor. Önde gelen ilişkisel veritabanı sağlayıcıları, ürünlerine nesne yönelimli özellikler eklemeye başlıyor (veya eklemeyi planlıyor). Özellikle Sybase ve Informix, DBMS'nin sonraki sürümlerinde nesneler için destek sunacak. Benzer geliştirmeler bağımsız firmalar tarafından yapılacaktır. Örneğin Shores, 1996'nın sonlarında piyasaya sürülmesi planlanan Oracle8 DBMS'yi nesne yönelimli özelliklerle donatmaya hazırlanıyor.

    Öte yandan, Object Design gibi nesne veritabanı satıcıları, nesne yönelimli veritabanlarının yakın gelecekte ilişkisel veritabanlarının yerini almayacağının farkındadır. Bu onları, ilişkisel ve hiyerarşik veritabanlarını veya çeşitli arabirim türlerini desteklemek için ağ geçitleri oluşturmaya zorlar; bunun tipik bir örneği, Ontos / DB OODB ile birlikte kullanılan Ontos Ontos Entegrasyon Sunucusu nesne-ilişkisel arabirimidir.

    1.3 Çok boyutlu veritabanları

    Özel bir depolama organizasyonuna sahip güçlü bir veritabanı - kullanıcıların büyük miktarda veriyi analiz etmesine olanak tanıyan küpler. Çok boyutlu bir veritabanı, gerçekler, ölçümler ve önceden hesaplanmış toplamlar koleksiyonu olarak depolanan verilerle yüksek hızlı çalışma sağlamanıza olanak tanır.

    Çok boyutlu veri sunumuna dayalı özel DBMS'lerde, veriler ilişkisel tablolar biçiminde değil, sıralı çok boyutlu diziler biçiminde düzenlenir:

    Hiperküpler - veritabanında depolanan tüm hücrelerin aynı boyuta sahip olması, yani en eksiksiz ölçüm temelinde olması gerekir

    Polycubes - her değişken kendi boyut kümesiyle saklanır ve bununla ilişkili tüm işleme zorlukları, sistemin iç mekanizmalarına kaydırılır.

    Çevrim içi analitik işleme sistemlerinde çok boyutlu veritabanlarının kullanılması aşağıdaki avantajlara sahiptir:

    yüksek performans. Bu sınıfa ait ürünler genellikle çok boyutlu bir veritabanı sunucusuna sahiptir. Analiz sürecindeki veriler, yalnızca çok boyutlu bir yapıdan seçilir ve bu durumda, çok boyutlu bir veritabanı denormalize edildiğinden, önceden birleştirilmiş ölçümler içerdiğinden ve bu durumda, verilerin aranması ve alınması, ilişkisel bir veritabanının çok boyutlu kavramsal görünümünden çok daha hızlıdır. istenen hücrelere optimize edilmiş erişim sağlar

    veri arama ve alma, ilişkisel bir veritabanının çok boyutlu kavramsal görünümünden çok daha hızlıdır - çok boyutlu bir DBMS kullanırken bir ad hoc sorguya ortalama yanıt süresi, genellikle ilişkisel bir DBMS durumunda olduğundan bir ila iki kat daha azdır. normalleştirilmiş bir veri şeması

    yapı ve arabirimler, analitik sorguların yapısıyla en iyi şekilde eşleşir. Analist düz tablolarla çalışmaya alışık olduğundan, bu yöntem bir kişinin zihinsel modeline daha yakındır. Bir küpün iki boyutlu bir düzlem tarafından bir yönde veya başka bir yönde bir bölümünü oluşturarak, seçilen ölçüme göre herhangi bir nicelik çiftinin birbirine bağımlılığını elde etmek kolaydır. Örneğin, bölümler, atölyeler ve endüstriler bağlamında (başka bir boyut) bir ürünün üretim maliyeti (ölçü) zaman içinde (ölçüm) nasıl değişti?

    çok boyutlu DBMS, bilgi modeline çeşitli yerleşik işlevleri dahil etme görevleriyle kolayca başa çıkarken, SQL dilinin nesnel olarak var olan sınırlamaları, bu görevlerin ilişkisel DBMS'ye dayalı olarak uygulanmasını oldukça zor ve bazen imkansız hale getirir.

    MOLAP'ler yalnızca kendi çok boyutlu veritabanlarıyla çalışabilir ve çok boyutlu DBMS'ler için özel teknolojilere dayanır ve bu nedenle en pahalı olanlardır. Bu sistemler eksiksiz bir OLAP işleme döngüsü sağlar ve sunucu bileşenine ek olarak kendi entegre istemci arabirimlerini içerir veya kullanıcıyla iletişim kurmak için harici elektronik tablo programları kullanır. Bu tür sistemlerin bakımını yapmak için, sistemi kurmak, bakımını yapmak ve son kullanıcılar için veri sunumları oluşturmak üzere özel bir personel gerekir.

    MOLAP modellerinin diğer dezavantajları şunları içerir:

    büyük veritabanlarıyla çalışmaya izin vermeyin. Bugüne kadar gerçek limitleri 10-20 gigabayttır. Ek olarak, denormalizasyon ve ön toplama nedeniyle, çok boyutlu bir veritabanındaki 20 gigabayt, kural olarak (Codd'a göre), orijinal ayrıntılı veri miktarından 2,5-100 kat daha azına, yani en iyi ihtimalle birkaç gigabayta karşılık gelir. .

    ilişkisel ile karşılaştırıldığında, harici belleği çok verimsiz kullanırlar. Hiperküpün hücreleri, içlerinde mantıksal olarak sıralanmış diziler (sabit uzunlukta bloklar) şeklinde saklanır ve bu blok, minimum indekslenmiş birimdir. Belirli bir değer içermeyen bloklar çok boyutlu VTMS'de saklanmasa da bu sorunu kısmen çözmektedir. Veriler sıralı bir şekilde depolandığından, boş değerler her zaman tamamen kaldırılmaz ve yalnızca sıralama düzeni verileri mümkün olduğu kadar büyük bitişik gruplar halinde düzenleyebilirse kaldırılır. Ancak sorgularda en sık kullanılan sıralama düzeni, var olmayan değerleri olabildiğince ortadan kaldırmak için sıralanmaları gereken sıra ile eşleşmeyebilir. Bu nedenle, çok boyutlu bir veritabanı tasarlarken, genellikle hızdan (ve bu, çok boyutlu bir DBMS seçmenin ilk avantajlarından biri ve ana nedenlerinden biridir) veya harici bellekten (belirtildiği gibi, çok boyutlu veritabanlarının maksimum boyutu olmasına rağmen) feda etmeniz gerekir. sınırlı)

    arayüz için tek tip standartlar, verileri tanımlama ve işleme dilleri yoktur

    genellikle bir yükleme mekanizması olarak kullanılan veri çoğaltmayı desteklemez. Bu nedenle, çok boyutlu DBMS'nin kullanımı yalnızca aşağıdaki koşullar altında doğrulanır:

    analiz için ilk veri miktarı çok büyük değil (birkaç gigabayttan fazla değil), yani veri toplama düzeyi oldukça yüksek.

    bilgi boyutları kümesi kararlıdır (çünkü yapılarındaki herhangi bir değişiklik neredeyse her zaman hiperküpün tamamen yeniden yapılandırılmasını gerektirir).

    ad hoc isteklere sistem yanıt süresi en kritik parametredir.

    özel formüller ve işlevler yazma yeteneği de dahil olmak üzere hiperküp hücreler üzerinde boyutlar arası hesaplamalar yapmak için karmaşık yerleşik işlevlerin kapsamlı bir şekilde kullanılmasını gerektirir.

    2. Pratik kısım

    2.1 Sorunun ifadesi

    2.1.1 Sorunu çözmenin amacı

    Binaların onarımı ile ilgili faaliyetler yürüten Stroy-Design LLC'nin yönetimi, müşteriye hızlı bir fatura sağlanması için yapılan işin maliyetini hesaplamak için hesaplamaları otomatikleştirmek istiyor. Bu, yerleşim süresinin kısaltılmasına, insan hatasının önlenmesine ve sağlanan hizmetlerle müşteri memnuniyetinin artırılmasına yardımcı olacaktır. Bu nedenle, yapılan işin maliyetinin hesaplanmasına ve ödemeleri için işin adını, yapılan işin miktarını, çıktı birimi başına fiyatı ve işin maliyetini içermesi gereken bir fatura oluşturulmasına karar verildi. Aylık olarak MS Excel yazılım ortamında çözülecek olan göreve “Yapılan işin maliyetinin hesaplanması” denir.

    Bu sorunu çözmenin amacı, müşterilere ayrıntılı bir faturanın hızlı bir şekilde sağlanması için işin maliyetini zamanında hesaplamaktır.

    2.1.2 Sorunun durumu

    Operasyonel bilgileri girin Ayrıntıları içeren “Yapılan işin maliyetinin hesaplanması” belgesi kullanılır: işin adı, yapılan iş miktarı, üretim birimi başına fiyat (ruble), işin maliyeti (ruble), son iki detay hesaplanmalı ve hesaplanmalıdır. Buna dayanarak, aşağıdaki ekran formu oluşturulur:

    İsim

    Birimler
    ölçümler

    Hacim
    gerçekleştirilen
    İşler

    Fiyat
    çalışır, ovmak.

    Q ben

    C ben

    Si


    Koşullu sabit bilgi (referans) kuruluşun aşağıdaki ayrıntıları içeren fiyat listesi kullanılır (koşullu form): işin adı, üretim birimi başına fiyat (ruble). Buna dayanarak, aşağıdaki ekran formu oluşturulur:

    Fiyat listesi

    İş unvanı

    Üretim birimi başına fiyat, ovmak.

    Tablodaki Latin harfleri, karşılık gelen hesaplama formüllerinin öğelerini gösterir.

    Sonuç olarak aşağıdaki ayrıntıları içeren bir fatura almalısınız: işin adı, üretim birimi başına fiyat (ruble), yapılan işin hacmi, işin maliyeti (ruble), hesap numarası (otomatik olarak doldurulur). Müşterinin tam adı ve tarihi manuel olarak girilir. Bilgi aşağıdaki belgelerde verilir:

    Ortaya çıkan "Fatura" belgesinin yapısı

    OOO "Stroyservis"

    HESAP NO.

    tarih

    20__

    Müşterinin tam adı


    p/n

    İsim

    Birimler
    ölçümler

    Hacim
    gerçekleştirilen
    İşler

    Üretim birimi başına fiyat, ovmak.

    Fiyat
    çalışır, ovmak.

    Pil değişimi

    PC.

    duvar kağıdı çıkartması

    m 2

    Boru değişimi

    Parke döşeme

    m 2

    TOPLAM:

    ben

    KDV:

    N

    KDV İLE DEĞER:

    SN

    Ch. muhasebeci

    Ayrıca, analiz için tablolarda yer alan bilgiler diyagramlar şeklinde sunulmalıdır.

    Teknolojide, DÜŞEYARA veya GÖRÜNÜM işlevlerini kullanarak "Hesap" belgesinin otomatik olarak oluşturulması için tablolar arası bağlantılar düzenleyin.

    2.2. Problem çözmenin bilgisayar modeli

    2.2.1. Problem çözmenin bilgi modeli

    bilgi modeli, kaynak ve ortaya çıkan belgeler arasındaki ilişkiyi yansıtan, Şek. 2.


    2.2.2. Problemi çözmek için analitik model

    Belge almak için Gerçekleştirilen maliyetin hesaplanması
    İşler » aşağıdaki göstergeleri hesaplamak gerekir:

      iş maliyeti, ovmak;

      KDV, ovmak;

      KDV ile tutar, ovmak.

      Hesaplamalar aşağıdaki formüllere göre yapılır:

      S ben = C ben ∙Q ben ,

      N = ΣS ben ∙ 0.18 ,

      SN = ΣS ben + N,

      Nerede Si
      - fiyat Ben iş; C ben
      - başına fiyat Ben-inci üretim birimi; ki - hacmi Ben iş; N- KDV;SN- KDV dahil değer.

      2.2.3. MS Excel problemini çözmek için teknoloji

      MS Excel kullanarak sorunu çözme

      Excel'i arayın:

      "Başlat" düğmesini tıklayın;

      ana menüden "Programlar" komutunu seçin;

      Microsoft Office menüsünden MS Excel'i seçin.

      "Sayfa 1"i "Fiyat Listesi" olarak yeniden adlandırın:

      bağlam menüsünden "Yeniden Adlandır" komutunu seçin ve tıklayın sol düğme fareler;

      "Enter" tuşuna basın.

      "Fiyat listesi" tablosunun başlığını girin:

      klavyede "Fiyat listesi" yazın;

      4. Başlığı biçimlendirin:


      Pirinç. 2. Bir hücre grubu seçme örneği

      Araç çubuğunda, Giriş sekmesinde, Hizalama bölümünü seçin ve düğmesine tıklayın.

      5. Uzun başlıkları girmek için A2:B2 hücrelerini biçimlendirin:

      A2:B2 hücrelerini seçin;

      araç çubuğundaki "Ana Sayfa" menüsünün "Hücreleri Biçimlendir" bölümündeki "Hizalama" komutunu çalıştırın;

      "Hizalama" sekmesini seçin;

      "Ekran" seçenek grubunda, "kelimelere göre sar" seçeneğinin kutusunu işaretleyin (Şek. 3);


      Pirinç. 3. Uzun kelimeleri bir hücreye girerken kelimeleri kaydırma görevi

      manşetler

      Tamam'ı tıklayın.

      6. A2:B2 hücrelerine şek. 4.


      Pirinç. 4. "Fiyat listesi" tablosundaki alanların adları

      7. Metin karakterlerini girmek için A3:A8 hücrelerini biçimlendirin:

      A3:A8 hücrelerini seçin;

      "Giriş" menüsündeki araç çubuğunda "Hücreler"i seçin, burada "Biçimlendir" öğesinde "Hücreleri Biçimlendir" komutunu yürütün;

      "Sayı" sekmesini seçin;

      "Metin" formatını seçin (Şek. 5);

      Tamam'ı tıklayın.


      Pirinç. 5. Hücre biçimini seçin

      8. "Sayısal" formatı seçerek B3:B8 hücre aralığı için 9. adımı tekrarlayın.

      9. İlk verileri girin (Şek. 6).


      Pirinç. 6. "Fiyat listesi" tablosunun görünümü

      10. Hücre grubunu adlandırın:

      A3:B8 hücrelerini seçin;

      "Formüller" menüsünün "Tanımlı Adlar" bölümünde "İsim Ata" komutunu seçin (Şek. 7);


      Pirinç. 7. "Ad oluşturma" penceresinin görünümü

      OK düğmesine basın.

      11. "Sayfa 2"yi "İş maliyetinin hesaplanması" olarak yeniden adlandırın (2. adıma benzer şekilde).

      12. "Yapılan işin maliyetinin hesaplanması" tablosunu oluşturun (3 - 7, 8. adımlara benzer) (Şekil 8).


      Pirinç. 8. "İş maliyetinin hesaplanması" tablosunun görünümü

      13. "İşin adı" ve "Üretim birimi başına fiyat, ruble" sütunlarını doldurun:

      A3 hücresini aktif hale getirin;

      "Veri" menüsünde, "Liste" öğesinin seçildiği "Veri Türü" alanında "Veri Doğrulama" komutunu seçin;

      "Fiyat listesi"nde A3:A8 aralığını vurgulayarak "Kaynak" alanına değeri girin (Şek. 9);


      Pirinç. 9. Ödeyenlerin listesini ayarlamak

      "Tamam" düğmesini tıklayın;

      A sütununun her bir hücresine (“İşin adı”) listeden işin adını girmek için, A3 hücresini aktif hale getirin ve imleci sağ alt köşedeki işaretçinin üzerine getirerek farenin sol düğmesine tıklayın ve A6 hücresine sürükleyin (Şek. 10 );


      Pirinç. 10. Listeyi ayarlarken "İş maliyetinin hesaplanması" sayfasının görünümü

      "Bir işlev seçin" alanında "DÜŞEYARA"ya tıklayın (Şek. 11);


      Pirinç. 11. İşlev sihirbazının ilk penceresinin görünümü

      "Tamam" düğmesine basın;

      A3 hücresine tıklayarak "Arıyor_değer" alanına işin adını girin;

      Enter tuşuna basın";

      "Tablo" alanına bilgi girin;

      "Formüller" menüsünün "Formülde Kullan" komutunu "Adları Girin" seçerek kullanın;

      "Ad" öğesini seçin: "Fiyat_listesi" (Şek. 12);


      Pirinç. 12. Bir formüle bağımsız değişken olarak bir dizi adı girme

      "Tamam" düğmesine basın;

      Enter tuşuna basın";

      bilgileri girin - "Column_number" alanındaki 2 sayısı;

      bilgileri girin - "Interval_view" alanındaki 0 ​​sayısı (Şek. 13);


      Pirinç. 13. İşlev sihirbazının ikinci penceresinin görünümü

      "Tamam" düğmesini tıklayın;

      14. "Yapılan işin kapsamı" sütununu doldurun.

      15. A4: A6 hücrelerine eserlerin adlarını girin:

      A4 hücresini aktif hale getirin;

      A4 hücresinin yanındaki düğmeye tıklayın ve önerilen listeden işin adını seçin - Pillerin değiştirilmesi, adet. Hücre C4 - "Üretim birimi başına fiyat, ovmak." otomatik olarak doldurulacaktır (Şek. 14);


      Pirinç. 14. Adına göre üretim birimi başına otomatik dolum fiyatları

      benzer şekilde A5:A6 hücrelerini doldurun, C5:C6 hücreleri de otomatik olarak doldurulacaktır.

      16. "İşin maliyeti, ovma" sütununu doldurun
      tablo "Yapılan işin maliyetinin hesaplanması."
      Bunun için:

      D3 hücresine =B3*C3 formülünü girin;

      D3 hücresine girilen formülü bu sütunun kalan D4:D6 hücreleri için çarpın (otomatik tamamlama işlevini kullanarak).

      Böylece kontrol parametresi satır numarası olan bir döngü yürütülür.

      17. Tamamlanan tablo şöyle görünür (Şek. 15).


      Pirinç. 15. "İş maliyetinin hesaplanması" tablosunu doldurmanın sonucu

      18. "Sayfa 3"ü " olarak yeniden adlandırın Kontrol etmek "(paragraf 2'deki adımlara benzer şekilde).

      19. "Hesap" çalışma sayfasında, önceki paragrafların rehberliğinde gerekli tabloyu oluşturun.

      20. Tablolar arası ilişkiler oluşturmak için ARA() işlevini kullanın. Ancak bundan önce, "Yapılan işin maliyetinin hesaplanması" tablosunun değerlerini "İşin adı" sütununa göre artan sırada sıralayın. Bunun için:

      A2:D6 hücre aralığını seçin;

      Ana menüde "Sırala ve filtrele" öğesini ve orada "Özel sıralama" öğesini seçin;

      açılır pencerede "İşin adına göre sırala" seçeneğini seçin;

      Tamam'ı tıklayın.

      "Formüller" menüsünün "İşlev ekle" komutunu kullanın;

      "Bir işlev seçin" alanında "GÖRÜNÜM" düğmesini tıklayın;

      "Tamam" düğmesine basın;

      C9 hücresine tıklayarak "Aranan_Değer" alanına işin adını girin;

      Enter tuşuna basın";

      Görüntülenen Vektör alanına bilgileri girin, yani 'Çalışma Maliyeti Hesaplaması'!$A$3:$A$6;

      Enter tuşuna basın";

      "İstenen vektör" alanına bilgi girin, yani "İş maliyetinin hesaplanması"! $$3: $$6;

      "Enter" tuşuna basın (Şek. 16);


      Pirinç. 16. GÖRÜNÜM işlevi sihirbazının ikinci penceresinin görünümü

      "Tamam" düğmesini tıklayın;

      22. D9:D12, E9:E12 hücreleri için adım 22'ye benzer adımları tekrarlayın.

      23. Tablonun "TOPLAM" sütununu aşağıdaki gibi doldurun:

      F13 hücresine = TOPLA (F9: F12) formülünü girin.

      24. "KDV" sütununu doldurun. Bunu yapmak için, F14 hücresine \u003d F13 * 0,18 formülünü girin.

      25. "KDV DAHİL MİKTAR" sütununu doldurunuz. Bunu yapmak için, F15 hücresine = F13 + F14 formülünü girin..

      26. Sonuç olarak, şekil 2'de gösterilen bir tablo almalısınız. 17.


      Pirinç. 17. Yapılan iş için ödeme için fatura şekli

      27. Alınan sipariş için her iş türünün maliyetine ilişkin bilgileri analiz etmek için:

      "Hesap" sayfasını aktif hale getirin;

      C9:F12 aralığını seçin;

      "Ekle" menüsünün "Grafikler" bölümündeki "Histogram" komutunu seçin;

      gerekli histogram türünü seçin;

      histogramı "Her iş türünün maliyeti" olarak yeniden adlandırın (Şekil 18).


      Pirinç. 18. Histogram "Her tür işin maliyeti"

      2.3. Bir bilgisayar deneyinin sonuçları ve analizleri

      2.3.1. Bir bilgisayar deneyinin sonuçları

      Sorunun çözümünün doğruluğunu test etmek için girdi belgelerini dolduruyoruz ve ardından sonuçları hesaplıyoruz.

      Fiyat listesi

      İş unvanı

      Üretim birimi başına fiyat, ovmak.

      Küvet değişimi, adet.

      Boru değiştirme, m

      Duvar kağıdı çıkartması, m2

      Parke döşeme, m2

      Tavan badanası, m2

      Yapılan işin maliyetinin hesaplanması

      İş unvanı

      Yapılan işin kapsamı

      Üretim birimi başına fiyat, ovmak.

      İşin maliyeti, ovmak.

      Pil değişimi, adet.

      1000

      Boru değiştirme, m

      Duvar kağıdı çıkartması, m2

      1400

      Parke döşeme, m2

      1200

      Stroy-Design LLC

      HESAP NO.

      tarih


      .
      .20

      Müşterinin tam adı

      Hayır. p / p

      İş unvanı

      Yapılan işin kapsamı

      Üretim birimi başına fiyat, ovmak.

      İşin maliyeti, ovmak.

      Pil değişimi, adet.

      1000

      Duvar kağıdı çıkartması, m2

      1400

      Boru değiştirme, m

      Parke döşeme, m2

      1200

      TOPLAM:

      4560

      KDV:

      820,8

      KDV İLE DEĞER:

      5380,8

      Problemin çözülmesi sonucunda bilgisayar kullanılarak elde edilen ifadeler, test edilen ifadelerle örtüşmektedir.

      2.3.2. Sonuçların analizi

      Böylece, ortaya çıkan belgenin (tablo) "Fatura" oluşumu, görevi çözmenize - iş maliyetini hesaplama süresini kısaltmanıza, insan faktöründen kaynaklanan hataları ortadan kaldırmanıza ve müşteri memnuniyetinin derecesini artırmanıza olanak tanır. MS Excel kullanılarak bu tablolara dayalı olarak çeşitli çizelgelerin (histogramlar, grafikler) oluşturulması, yalnızca karar vermek için analiz için bilgi işlemenin sonuçlarını görselleştirmeye değil, aynı zamanda yapım alanında hızlı bir şekilde manipüle etmeye de izin verir. verilen kullanıcı (analist) parametrelerine göre görselleştirme sonuçlarının en uygun sunumu.

      Modern bilgi teknolojisinin ana fikirleri, değişen gerçek dünyayı yeterince yansıtmak ve kullanıcıların bilgi ihtiyaçlarını karşılamak için verilerin veritabanlarında düzenlenmesi gerektiği kavramına dayanmaktadır. Bu veri tabanları, veri tabanı yönetim sistemleri (DBMS) adı verilen özel yazılım sistemlerinin kontrolünde oluşturulur ve çalıştırılır.

      Depolanan verilerin hacminin ve yapısal karmaşıklığının artması, bilgi sistemleri kullanıcılarının çemberinin genişlemesi, en uygun ve nispeten anlaşılması kolay ilişkisel (tablo) DBMS'nin yaygın kullanımına yol açmıştır. Çoğu zaman birbirinden ve veritabanlarının depolandığı yerden oldukça uzakta bulunan birçok kullanıcının verilere eşzamanlı erişimini sağlamak için, veritabanlarının ilişkisel yapıya dayalı çok kullanıcılı ağ sürümleri oluşturulmuştur. Öyle ya da böyle, paralel süreçler, veri bütünlüğü (doğruluğu) ve güvenlik ile erişim yetkilendirmesinin belirli sorunlarını çözerler.

      DBMS, aşağıdakiler hakkında hiçbir fikri olmayan ve (veya) olmak istemeyenler de dahil olmak üzere herhangi bir kullanıcıya verilere erişim sağlamalıdır: verilerin hafızasındaki fiziksel konumu ve açıklamaları; talep edilen veriler için arama mekanizmaları; aynı verinin çok sayıda kullanıcı tarafından aynı anda talep edilmesinden kaynaklanan problemler (uygulama programları); verileri yanlış güncellemelerden ve (veya) yetkisiz erişimden korumanın yolları; veritabanlarını güncel tutmak ve diğer birçok DBMS işlevi.

      Bugüne kadar, hem oluşturma sürecinde hem de kullanıcı düzeyinde basitlikleri ve görünürlükleri nedeniyle ilişkisel veritabanları en yaygın olanı olmaya devam ediyor.

      İlişkisel veritabanlarının temel avantajı, en popüler SQL sorgulama dili ile uyumluluktur. Bu dilde tek bir sorgu ile, birkaç tabloyu geçici bir tablo halinde birleştirebilir ve gerekli satırları ve sütunları buradan (seçim ve projeksiyon) kesebilirsiniz. İlişkisel bir veritabanının tablo yapısı kullanıcılar için sezgisel olduğundan, SQL dili basit ve öğrenmesi kolaydır. İlişkisel model, ilişkisel veritabanlarının gelişiminin ve uygulanmasının dayandığı sağlam bir teorik temele sahiptir. İlişkisel modelin başarısının yarattığı popülaritenin ardından SQL, ilişkisel veritabanları için ana dil haline geldi.

      Yukarıdaki bilgileri analiz etme sürecinde, dikkate alınan veritabanı modelinin aşağıdaki eksiklikleri ortaya çıktı: bir tablonun tüm alanları önceden belirlenmiş türlerde sabit sayıda alan içermesi gerektiğinden, bireysel dikkate alan ek tablolar oluşturmak gerekir. yabancı anahtar kullanan elemanların özellikleri. Bu yaklaşım, veritabanında herhangi bir karmaşık ilişkinin oluşturulmasını büyük ölçüde karmaşıklaştırır; bilgileri manipüle etmenin ve ilişkileri değiştirmenin yüksek emek yoğunluğu.

      Pratik kısımda, görev, MS Excel 2010 kullanılarak, tesislerin onarımı ile ilgili faaliyetler yürüten şartlı bir işletme olan Stroy-Design LLC ile ilgili olarak çözüldü. Görevde verilen verilere göre tablolar oluşturulmuştur. Alınan siparişteki iş maliyetinin hesaplanması tamamlandı, hesaplama verilerini tabloya girin. Tablolar arası bağlantılar, gerçekleştirilen iş için ödeme yapmak üzere müşteriye düzenlenen bir faturayı otomatik olarak oluşturmak için DÜŞEYARA veya GÖRÜNÜM işlevleri kullanılarak düzenlenir. "Yapılan işin ödenmesi için fatura" belgesini oluşturdu ve tamamladı. Alınan sipariş için her iş türünün maliyetinin hesaplanmasının sonuçları grafiksel olarak sunulur.

      Bilişim disiplininde bilgisayar eğitim programı” / A.N. Romanov, V. S. Toroptsov, D.B. Grigorovich, L.A. Galkina, A.Yu. Artemiev, N.I. Lobova, K.E. Mihaylov, G.A. Zhukov, O.E. Krichevskaya, S.V. Yasenovsky, L.A. Vdovenko, B.E. Odintsov, G.A. Titorenko, G.D. Savichev, V.I. Gusev, S.E. Smirnov, V.I. Suvorov, G.V. Fedorova, G.B. Konyaşin. - M.: VZFEI, 2000. Güncelleme tarihi 24.11.2010. - Giriş ve şifre ile erişim.

      "Ekonomide bilgi sistemleri" / A.N. Romanov, V.S. Toroptsov, D.B. Grigorovich, L.A. Galkina, A.V. Mortvichev, B.E. Odintsov, G.A. Titorenko, L.A. Vdovenko, V.V. Braga, GD Savichev, V.I. Suvorov. - M.: VZFEI, 2005. Güncelleme tarihi 15.10.2010. – URL: . Giriş ve şifre erişimi.

      VTYS KAVRAMI VE VERİTABANI MODELLERİ TÜRLERİ VERİ TABANI TEKNOLOJİLERİ KULLANARAK SOSYOLOJİK DOĞADAN VERİLERİN TOPLANMASI. TABLOLAR VE DB FORMLARI OLUŞTURMA 2013-11-05

    Bu makale ile veritabanlarına, verilere erişmek ve verileri işlemek için modern teknolojilere adanmış yeni bir döngüye başlıyoruz. Bu döngü sırasında, en popüler masaüstü ve sunucu veritabanı yönetim sistemlerini (DBMS), veri erişim mekanizmalarını (OLD DB, ADO, BDE, vb.) ve veritabanlarıyla çalışmak için yardımcı programları (yönetim araçları, rapor oluşturucular, grafik araçları) dikkate almayı planlıyoruz. verilerin sunumu). Ek olarak, OLAP (Çevrimiçi Analitik İşleme) gibi popüler veri işleme ve depolama yöntemlerinin yanı sıra internette veri yayınlama yöntemlerine ve veri ambarlarının oluşturulmasına (Veri Ambarı) dikkat etmeyi planlıyoruz.

    Bu yazıda, veritabanı yönetim sistemlerinin altında yatan temel kavram ve ilkelere bakacağız. İlişkisel veri modelini, referans bütünlüğü kavramını ve veri normalleştirme ilkelerinin yanı sıra veri tasarım araçlarını tartışacağız. Daha sonra DBMS'nin ne olduğunu, veritabanlarında hangi nesnelerin bulunabileceğini ve bu nesneler üzerinde sorgulamaların nasıl yapıldığını açıklayacağız.

    Temel İlişkisel Veritabanı Kavramları

    Bir DBMS'nin temel kavramlarıyla başlayalım ve kısa tanıtım ilişkisel veritabanları teorisine - şu anda veri depolamanın en popüler yolu.

    ilişkisel veri modeli

    ilişkisel veri modeli Tanınmış bir veri tabanı araştırmacısı olan Dr. E.F.Codd tarafından 1969 yılında IBM'in bir çalışanıyken önerildi. Bu modelin temel kavramları ilk kez 1970 yılında “A Relational Model of Data for Large Shared Data Banks”, CACM, 1970, 13 N 6) yayınlanmıştır.

    İlişkisel bir veritabanı, bir dizi iki boyutlu tablo içeren bir veri ambarıdır. Bu tür bir depolamayı yönetmek için bir takım araçlara denir. ilişkisel veritabanı yönetim sistemi (RDBMS). Bir RDBMS, yardımcı programları, uygulamaları, hizmetleri, kitaplıkları, uygulama oluşturucuları ve diğer bileşenleri içerebilir.

    Herhangi bir ilişkisel veritabanı tablosu şunlardan oluşur: çizgiler(olarak da adlandırılır kayıtlar) Ve sütunlar(olarak da adlandırılır alanlar). Bu döngüde, her iki terim çiftini de kullanacağız.

    Tablonun satırları, içinde sunulan gerçekler (veya belgeler veya tek kelimeyle aynı türdeki nesneler hakkında insanlar) hakkında bilgi içerir. Bir sütun ve bir satırın kesiştiği noktada, veri tablosunda yer alan belirli değerler vardır.

    Tablolardaki veriler aşağıdaki ilkeleri takip eder:

    1. Bir satır ve bir sütunun kesişme noktasında bulunan her değer, atomik(yani, birden çok değere bölünmez).
    2. Aynı sütundaki veri değerleri, verilen VTYS'de kullanılabilen aynı türde olmalıdır.
    3. Tablodaki her kayıt benzersizdir, yani tabloda alanları için tam olarak aynı değer kümesine sahip iki kayıt yoktur.
    4. Her alanın benzersiz bir adı vardır.
    5. Tablodaki alanların sırası önemli değildir.
    6. Girişlerin sırası da önemsizdir.

    Tablo satırlarının sırasız olarak kabul edilmesine rağmen, herhangi bir veritabanı yönetim sistemi, seçimlerdeki satırları ve sütunları kullanıcının ihtiyaç duyduğu şekilde sıralamanıza olanak tanır.

    Bir tablodaki sütunların sırası önemli olmadığından, adlarıyla anılırlar ve bu adlar belirli bir tablo için benzersizdir (ancak tüm veritabanında benzersiz olması gerekmez).

    Artık ilişkisel veritabanlarının tablolardan oluştuğunu biliyoruz. Bazı teorik noktaları göstermek ve örnekler oluşturmak için bir veritabanı seçmemiz gerekiyor. Tekerleği yeniden icat etmekten kaçınmak için Microsoft SQL Server ve Microsoft Access ile birlikte gelen NorthWind veritabanını kullanacağız.

    Şimdi tablolar arasındaki ilişkilere bakalım.

    Anahtarlar ve bağlantılar

    NorthWind veritabanından Customers tablosunun bir parçasına bir göz atalım (tablolar arasındaki ilişkileri göstermek için alakasız alanları ondan kaldırdık).

    Tablodaki satırlar sırasız olduğundan, her satırı benzersiz şekilde tanımlamak için bir sütuna (veya birden çok sütun kümesine) ihtiyacımız var. Böyle bir sütuna (veya sütun kümesine) denir. birincil anahtar (birincil anahtar). Herhangi bir tablonun birincil anahtarı, her satır için boş olmayan benzersiz değerler içermelidir.

    Birincil anahtarın birden fazla sütunu varsa buna denir. bileşik birincil anahtar (bileşik birincil anahtar).

    Tipik bir veritabanı genellikle birkaç ilgili tablolar. Siparişler (siparişler) tablosunun parçası.

    Bu tablonun CustomerID alanı, bu siparişi veren müşterinin kimliğini içerir. Siparişi veren firmanın adını öğrenmek istiyorsak, Customers tablosunun CustomerID alanında aynı müşteri ID değerini aramalı ve bulunan satırda CompanyName alanının değerini okumalıyız. Yani CustomerID alanına göre Customers ve Orders olmak üzere iki tabloyu birbirine bağlamamız gerekiyor. İlişkili başka bir tablodaki bir kayda işaret eden bir sütun bu giriş, denir yabancı anahtar (yabancı anahtar). Gördüğünüz gibi, Siparişler tablosunda, yabancı anahtar CustomerID sütunudur (Şekil 1).

    Başka bir deyişle, yabancı anahtar, değerleri başka bir tablonun birincil anahtarının mevcut değerleriyle eşleşen bir sütun veya sütunlar kümesidir.

    Tablolar arasındaki bu ilişkiye denir. iletişim (ilişki). Bir tablonun yabancı anahtar değerleri diğerinin birincil anahtar değerlerine atanarak iki tablo arasında ilişki kurulur.

    Müşteriler tablosundaki her müşteri yalnızca bir sipariş verebilirse, iki tablonun şu şekilde ilişkili olduğu söylenir: bire bir (bire bir ilişki). Her müşteri, Müşteriler tablosuna sıfır, bir veya daha fazla sipariş verebiliyorsa, iki tablonun şu şekilde ilişkili olduğu söylenir: bire çok (bire çok ilişki) veya oran ana detay. Tablolar arasındaki benzer ilişkiler en sık kullanılır. Bu durumda yabancı anahtarı içeren tablo çağrılır. detay tablosu, ve yabancı anahtarın olası değerlerini tanımlayan birincil anahtarı içeren tabloya denir ana masa.

    İlişkili tablolar grubuna denir plan Veri tabanı ( veritabanı şeması). Tablolar, sütunları (adlar, veri türü, alan uzunluğu), birincil ve yabancı anahtarlar ve ayrıca diğer veritabanı nesneleri hakkındaki bilgilere denir. meta veri (meta veri).

    Veritabanlarındaki verilerin seçilmesi, eklenmesi, silinmesi, güncellenmesi, meta verilerin değiştirilmesi veya seçilmesi gibi verilerin herhangi bir manipülasyonuna denir. rica etmek veritabanına ( sorgu). Tipik olarak, sorgular, farklı DBMS için standart veya belirli bir DBMS'ye bağlı olabilen bazı dillerde formüle edilir.

    Bilgi tutarlılığı

    Yukarıda, herhangi bir tablonun birincil anahtarının bu tablo için boş olmayan benzersiz değerler içermesi gerektiğini zaten söylemiştik. Bu ifade kurallardan biridir. bilgi tutarlılığı (bilgi tutarlılığı). Bazı (ancak tümü değil) DBMS'ler birincil anahtarların benzersizliğini kontrol edebilir. DBMS, birincil anahtarların benzersizliğini kontrol ediyorsa, başka bir kayıtta zaten var olan birincil anahtara bir değer atamaya çalışırken, DBMS genellikle ifadeyi içeren bir teşhis mesajı oluşturur. birincil anahtar ihlali. Bu mesaj daha sonra son kullanıcının verileri manipüle ettiği uygulamaya iletilebilir.

    İki tablo ilişkiliyse ana detay, harici anahtar detay- tablo yalnızca zaten birincil anahtarın değerleri arasında bulunan değerleri içermelidir usta- tablolar. Yabancı anahtar değerlerinin doğruluğu DBMS tarafından kontrol edilmezse, referans bütünlüğünün ihlalinden bahsedebiliriz. Bu durumda, Müşteriler tablosundan kendisiyle ilişkilendirilmiş en az bir girişi silersek detay- Siparişler tablosundaki giriş, bu, Siparişler tablosunun bilinmeyen biri tarafından verilen siparişlerin kayıtlarını içermesine neden olur. DBMS, yabancı anahtar değerlerinin doğruluğunu kontrol ediyorsa, o zaman bir yabancı anahtara ana tablonun birincil anahtarlarının değerleri arasında olmayan bir değer atamaya çalışırken veya referans bütünlüğünü ihlal eden ana tablo girişlerini silerken veya değiştirirken , DBMS, genellikle ifadeyi içeren bir teşhis mesajı üretecektir. yabancı anahtar ihlali, daha sonra kullanıcı uygulamasına geçirilebilir.

    Microsoft Access 97, Microsoft Access 2000 ve Microsoft SQL Server 7.0 gibi modern DBMS'lerin çoğu, veritabanında tanımlanmaları halinde bilgi bütünlüğü kurallarını uygulama yeteneğine sahiptir. Bu amaçla, bu tür VTYS'ler çeşitli veritabanı nesneleri kullanır (bunlara biraz sonra değineceğiz). Bu durumda, referans bütünlüğü kurallarını ihlal etmeye yönelik tüm girişimler, aynı anda teşhis mesajları veya istisnalar ( veritabanı istisnaları).

    Veri Normalleştirmeye Giriş

    Veri tasarım süreci, gelecekteki veritabanının kullanılacağı bilgi sisteminin görevlerine uygun olarak meta verilerin tanımlanmasıdır. Etki alanı analizinin nasıl gerçekleştirileceğine, varlık-ilişki diyagramlarının nasıl oluşturulacağına ilişkin ayrıntılar ( ERD - varlık-ilişki diyagramları) ve veri modelleri bu döngünün kapsamı dışındadır. Bu konularla ilgilenenler, örneğin, C. J. Date'in "Veritabanı sistemlerine giriş" ("Diyalektik", Kiev, 1998) kitabına başvurabilirler.

    Bu yazıda, veri tasarımının ana ilkelerinden yalnızca birini tartışacağız - ilke normalleşme.

    normalleşme tabloları verilerin tutarlı ve doğru bir şekilde düzenlenmesine izin verecek bir forma getirmek için veri depolamadaki tekrar eden grupları ve diğer tutarsızlıkları ortadan kaldırarak verileri yeniden düzenleme sürecidir.

    Normalizasyon teorisi, normal formlar kavramına dayanmaktadır. Belirli bir dizi gereksinimi karşılayan bir tablonun belirli bir normal formda olduğu söylenir. Teorik olarak, beş normal form vardır, ancak pratikte yalnızca ilk üçü yaygın olarak kullanılmaktadır. Ayrıca, ilk iki normal form, veritabanını üçüncü normal forma getirmek için esasen ara adımlardır.

    Birincil normal form

    Normalleştirme sürecini NorthWind veritabanından alınan verileri kullanarak bir örnekle açıklayalım. Sipariş edilen tüm ürünleri aşağıdaki tabloya kaydettiğimizi varsayalım. Bu tablonun yapısı şuna benzer (Şekil 2).

    Bir tablonun birinci normal forma uyması için alan değerlerinin tamamının atomik olması ve

    tüm girişler benzersizdir. Bu nedenle, OrderedProducts tablosu da dahil olmak üzere herhangi bir ilişkisel tablo, tanım gereği zaten ilk normal biçimdedir.

    Ancak bu tablo gereksiz veriler içermektedir, örneğin sipariş edilen her ürün için aynı müşteri bilgileri kayıtta tekrarlanmaktadır. Veri fazlalığı, veri değiştirme anormalliklerine yol açar - kayıtlar eklendiğinde, değiştirildiğinde veya silindiğinde ortaya çıkan sorunlar. Örneğin, OrderedProducts tablosundaki verileri düzenlerken aşağıdaki sorunlar ortaya çıkabilir:

    • Belirli bir müşterinin adresi, yalnızca müşteri en az bir ürün sipariş ettiğinde veritabanında yer alabilir.
    • Sipariş edilen bir ürünün kaydının silinmesi, aynı anda siparişin kendisi ve siparişi veren müşteri hakkındaki bilgileri de siler.
    • Bir müşteri, Allah göstermesin, adres değiştirirse, sipariş ettiği ürünlerin tüm kayıtları güncellenmek zorunda kalır.

    Bu sorunlardan bazıları, veritabanını şuraya getirerek çözülebilir: ikinci normal form.

    İkinci normal biçim

    İlişkisel tablonun içinde olduğu söyleniyor ikinci normal form ilk normal formda ve anahtar olmayan alanlarında ise tamamen bağımlı birincil anahtarın tamamından.

    MüşteriNo, Adres ve SiparişTarihi alanları yalnızca bileşik birincil anahtarın (SiparişKimliği, ÜrünKimliği) parçası olan SiparişKimliği alanına bağlı olduğundan, OrderedProducts tablosu birinci normal biçimdedir ancak ikinci normal biçimde değildir.

    Birinci normal formdan ikinci normal forma geçmek için şu adımları izleyin:

    1. Birincil anahtarın hangi parçalara ayrılabileceğini belirleyin, böylece bazı anahtar olmayan alanlar bu parçalardan birine bağlı olacaktır ( bu kısımlar tek sütundan oluşmak zorunda değil!).
    2. Bu tür her anahtar parça ve buna bağlı alan grubu için yeni bir tablo oluşturun ve bunları bu tabloya taşıyın. Eski birincil anahtarın bir kısmı daha sonra yeni tablonun birincil anahtarı olacaktır.
    3. Yabancı anahtar haline gelecek olanlar dışındaki tablolara taşınan alanları orijinal tablodan kaldırın.

    Örneğin, OrderedProducts tablosunu ikinci normal forma dönüştürmek için CustomerID, Address ve OrderDate alanlarını yeni bir tabloya taşımanız gerekir (buna OrdersInfo diyelim), bu sırada OrderID alanı yeni tablonun birincil anahtarı olur (Şekil 3).

    Sonuç olarak, yeni tablolar böyle görünecektir. Ancak, ikinci normal formda olan ancak üçüncü normal formda olmayan tablolar, yine de veri değiştirme anormallikleri içerir. Örneğin, OrdersInfo tablosu için bunlar şunlardır:

    • Belirli bir müşterinin adresi, yalnızca müşteri en az bir ürün sipariş ettiğinde veritabanında yer alabilir.
    • OrdersInfo tablosunda bir sipariş girişinin silinmesi, müşteri girişinin silinmesine neden olur.
    • Müşteri adresini değiştirmişse, birkaç kaydın güncellenmesi gerekecektir (gerçi genellikle önceki duruma göre daha az kayıt vardır).

    Bu anomaliler giderek ortadan kaldırılabilir üçüncü normal biçim.

    üçüncü normal biçim

    İlişkisel tablonun içinde olduğu söyleniyor üçüncü normal biçim ikinci normal formdaysa ve anahtar olmayan tüm alanları yalnızca birincil anahtara bağlıysa.

    OrderDetails tablosu zaten üçüncü normal formda. Anahtar olmayan Miktar alanı tamamen bileşik birincil anahtara (Sipariş Kimliği, Ürün Kimliği) bağlıdır. Ancak, OrdersInfo tablosu, anahtar olmayan alanlar arasında bir bağımlılık içerdiğinden üçüncü normal biçimde değildir (buna geçişli bağımlılık- geçişli bağımlılık) - Adres alanı, CustomerID alanına bağlıdır.

    İkinci normal formdan üçüncü normal forma geçmek için şu adımları izleyin:

    • Diğer alanların bağlı olduğu tüm alanları (veya alan gruplarını) tanımlayın.
    • Bu tür her alan (veya alan grubu) ve buna bağlı alan grubu için yeni bir tablo oluşturun ve bunları bu tabloya taşıyın. Taşınan diğer tüm alanların bağlı olduğu alan (veya alan grubu), yeni tablonun birincil anahtarı olacaktır.
    • Orijinal tablodan taşınan alanları silin, yalnızca yabancı anahtar olacakları bırakın.

    OrdersInfo tablosunu üçüncü normal haline getirmek için yeni bir Customers tablosu oluşturalım ve CustomerID ve Adres alanlarını tabloya taşıyalım. Adres alanını kaynak tablodan sileceğiz ve CustomerID alanını bırakacağız - artık bu bir yabancı anahtardır (Şekil 4).

    Yani orijinal tabloyu üçüncü normal forma getirdikten sonra karşımıza Müşteriler, Siparişler ve Sipariş Detayları olmak üzere üç tablo çıkıyor.

    Normalleşmenin faydaları

    Normalleştirme, depolanan veri miktarını azaltmanıza ve yukarıda açıklanan değişikliklerinin anormalliklerinden kurtulmanıza olanak tanıyan veri fazlalığını ortadan kaldırır. Örneğin, yukarıda tartışılan veri tabanını üçüncü normal forma dönüştürdükten sonra, aşağıdaki iyileştirmeler belirgindir:

    • Henüz sipariş vermemiş potansiyel bir müşteri bile olsa, müşterinin adres bilgileri veritabanında saklanabilir.
    • Sipariş edilen ürün bilgileri, müşteri ve sipariş verilerinin silinmesinden korkmadan silinebilir.

    Bir müşterinin adresini veya sipariş kayıt tarihini değiştirmek artık yalnızca bir girişin değiştirilmesini gerektiriyor.

    Veritabanları nasıl tasarlanır?

    Tipik olarak, modern DBMS tablolar ve anahtarlar oluşturmanıza izin veren araçlar içerir. Tablolar, anahtarlar ve ilişkiler oluşturmanıza izin veren, DBMS'den ayrı olarak sağlanan (ve hatta aynı anda birkaç farklı DBMS'ye hizmet veren) yardımcı programlar da vardır.

    Bir veritabanında tablolar, anahtarlar ve ilişkiler oluşturmanın başka bir yolu, sözde bir DDL betiği (DDL - Veri Tanımlama Dili; bunun hakkında biraz sonra konuşacağız) yazmaktır.

    Son olarak, giderek daha popüler hale gelen başka bir yol daha var - bu, CASE araçları adı verilen özel araçların kullanılmasıdır (CASE, Bilgisayar Destekli Sistem Mühendisliği anlamına gelir). Birkaç CASE aracı türü vardır, ancak veritabanları oluşturmak için en yaygın kullanılan araçlar varlık-ilişki diyagramlarıdır (E/R diyagramları). Bu araçların yardımıyla sözde mantıklı içinde kaydedilecek gerçekleri ve nesneleri tanımlayan bir veri modeli (bu tür modellerde, tablo prototiplerine varlıklar denir ve alanlar onların nitelikleridir). fiziksel tüm tabloları, alanları ve diğer veritabanı nesnelerini tanımlayan belirli bir DBMS için bir veri modeli. Bundan sonra, veritabanının kendisini veya onu oluşturmak için bir DDL komut dosyası oluşturabilirsiniz.

    Şu anda en popüler CASE araçlarının listesi.

    Tablolar ve alanlar

    Tablolar, tüm ilişkisel DBMS tarafından desteklenir ve alanları farklı türde verileri depolayabilir. En yaygın veri türleri.

    endeksler

    Biraz yukarıda birincil ve yabancı anahtarların rolü hakkında konuştuk. İlişkisel DBMS'lerin çoğunda, anahtarlar, dizin adı verilen ve bunların hangi sırada sağlanacağını gösteren kayıt numaralarının bir listesi olarak tanımlanabilen nesneler kullanılarak uygulanır.

    İlişkisel tablolardaki kayıtların sırasız olduğunu zaten biliyoruz. Bununla birlikte, veri düzenleme sırasında veya DBMS'nin kendisinin "dahili etkinliklerinin" bir sonucu olarak değişebilmesine rağmen, belirli bir zamanda herhangi bir kayıt, veritabanı dosyasında iyi tanımlanmış bir fiziksel konuma sahiptir.

    Müşteriler tablosundaki kayıtların herhangi bir zamanda bu sırayla saklandığını varsayalım.

    Diyelim ki bu verileri CustomerID alanına göre sıralamamız gerekiyor. Teknik detayları atlayarak, bu alandaki indeksin, görüntülenmesi gereken kayıt numaralarının sırası olduğunu söyleyebiliriz, yani:

    1,6,4,2,5,3

    Adres alanına göre kayıtları sıralamak istersek kayıt numaralarının sırası farklı olacaktır:

    5,4,1,6,2,3

    Dizinleri depolamak, tablonun kendisinin farklı sıralanmış sürümlerini depolamaktan önemli ölçüde daha az alan gerektirir.

    CustomerID'si "BO" karakterleri ile başlayan müşteriler hakkında veri bulmamız gerekirse, bu kayıtların konumunu bulmak için dizini kullanabiliriz (bu durumda 2 ve 5 (açıkçası bu kayıtların dizinde ardışık sayıları vardır). ) ve ardından tüm tabloya bakmak yerine sadece ikinci ve beşinci kayıtları okuyun. Böylece dizinlerin kullanılması veri alma süresini azaltır.

    Kayıtların fiziksel konumunun, kullanıcılar tarafından veri düzenleme sırasında ve ayrıca DBMS'nin kendisi tarafından gerçekleştirilen veritabanı dosyalarıyla yapılan manipülasyonların bir sonucu olarak (örneğin, veri sıkıştırma, çöp toplama vb.) değişebileceğini zaten söylemiştik. Aynı zamanda indekste karşılık gelen değişiklikler varsa, buna denir. desteklenen ve bu tür dizinler çoğu modern DBMS'de kullanılır. Bu tür dizinlerin uygulanması, tablodaki verilerdeki herhangi bir değişikliğin, onunla ilişkili dizinlerde bir değişikliği gerektirmesine yol açar ve bu, DBMS'nin bu tür işlemleri gerçekleştirmesi için gereken süreyi artırır. Bu nedenle, bu tür DBMS'yi kullanırken, yalnızca gerçekten ihtiyaç duyulan dizinleri oluşturmalı ve en sık hangi sorguların gerçekleşeceğine rehberlik etmelisiniz.

    Kısıtlamalar ve kurallar

    Modern sunucu DBMS'lerinin çoğu, adı verilen özel nesneler içerir. kısıtlamalar(kısıtlamalar) veya tüzük(tüzük). Bu nesneler, alanların olası değerlerine getirilen kısıtlamalar hakkında bilgi içerir. Örneğin, böyle bir nesneyi kullanarak, bu alan için maksimum veya minimum değeri ayarlayabilirsiniz ve bundan sonra DBMS, bu koşulu sağlamayan bir kaydı veritabanına kaydetmenize izin vermez.

    Veri aralığını ayarlamakla ilişkili kısıtlamalara ek olarak, referans kısıtlamaları da vardır (referans kısıtlamaları, örneğin, Müşteriler ve Siparişler tabloları arasındaki ana detay ilişkisi, CustomerId değerinin gerekliliğini içeren bir kısıtlama olarak uygulanabilir. (yabancı anahtar) alanı, Müşteriler tablosundaki CustomerId alanı için mevcut değerlerden birine eşit olmalıdır.

    Tüm DBMS'lerin kısıtlamaları desteklemediğini unutmayın. Bu durumda, kuralların benzer işlevlerini uygulamak için diğer nesneleri (örneğin, tetikleyiciler) kullanabilir veya bu kuralları, bu veritabanıyla çalışan istemci uygulamalarında depolayabilirsiniz.

    temsil

    Neredeyse tüm ilişkisel DBMS'ler görünümleri destekler. Bu nesne, bir veya daha fazla gerçek tablodan veri sağlayan sanal bir tablodur. Gerçekte herhangi bir veri içermez, yalnızca bunların kaynağını açıklar.

    Genellikle, bu tür nesneler veritabanlarında karmaşık sorguları depolamak için oluşturulur. Aslında görünüm, saklanan bir istektir.

    Çoğu modern DBMS'de görünümlerin oluşturulması, gerekli tabloları ekranda görüntülemenize, aralarında ilişkiler kurmanıza, görüntülenen alanları seçmenize, kayıtlara kısıtlamalar getirmenize vb. izin veren özel görsel araçlarla gerçekleştirilir.

    Genellikle, bu nesneler, örneğin, doğrudan tablolara erişim sağlamadan verilerin onlar aracılığıyla görüntülenmesine izin vererek veri güvenliğini sağlamak için kullanılır. Ek olarak, bazı görüntüleme nesneleri, örneğin kullanıcının adına bağlı olarak farklı veriler döndürebilir, bu da yalnızca ilgilendiği verileri almasına olanak tanır.

    Tetikleyiciler ve saklı yordamlar

    Çoğu modern sunucu veritabanı tarafından desteklenen tetikleyiciler ve saklı yordamlar, yürütülebilir kodu depolamak için kullanılır.

    Saklı yordam, veritabanı sunucusu tarafından yürütülen özel bir yordam türüdür. Saklı yordamlar, belirli DBMS'ye bağlı olan yordamsal bir dilde yazılır. Birbirlerini arayabilir, tablolardaki verileri okuyabilir ve değiştirebilirler ve bir veritabanı istemci uygulamasından çağrılabilirler.

    Saklı yordamlar, sıklıkla meydana gelen görevleri gerçekleştirirken (örneğin, bir bilançoyu dengelemek) yaygın olarak kullanılır. Bağımsız değişkenlere, dönüş değerlerine, hata kodlarına ve bazen satır ve sütun kümelerine (böyle bir veri kümesine bazen veri kümesi denir) sahip olabilirler. Ancak, ikinci tür prosedürler tüm DBMS tarafından desteklenmez.

    Tetikleyiciler ayrıca çalıştırılabilir kod içerir, ancak prosedürlerin aksine, bir istemci uygulamasından veya saklı prosedürden çağrılamazlar. Bir tetikleyici her zaman belirli bir tabloyla ilişkilendirilir ve bu tablo düzenlenirken ilişkili olduğu bir olay meydana geldiğinde yürütülür (örneğin, bir kaydın eklenmesi, silinmesi veya güncellenmesi).

    Tetikleyicileri destekleyen çoğu DBMS'de, aynı olay meydana geldiğinde yürütülecek birden çok tetikleyici tanımlayabilir ve bunların yürütülme sırasını belirleyebilirsiniz.

    Birincil anahtar oluşturmak için nesneler

    Çoğu zaman birincil anahtarlar DBMS'nin kendisi tarafından üretilir. Bu, onları oluşturmaktan daha uygundur. müşteri uygulaması, çünkü çok kullanıcılı çalışmada, DBMS kullanarak anahtarlar oluşturmak, anahtarları çoğaltmaktan kaçınmanın ve sıralı değerlerini almanın tek yoludur.

    Farklı DBMS'ler, anahtar oluşturmak için farklı nesneler kullanır. Bu nesnelerden bazıları, bir tamsayıyı ve bir sonraki değerin üretildiği kuralları saklar - genellikle bu, tetikleyiciler kullanılarak yapılır. Bu tür nesneler, örneğin Oracle'da (bu durumda diziler olarak adlandırılırlar) ve IB Database'de (bu durumda jeneratörler olarak adlandırılırlar) desteklenir.

    Bazı DBMS, birincil anahtarlar için özel alan türlerini destekler. Kayıt eklerken, bu tür alanlar otomatik olarak ardışık değerlerle (genellikle tam sayılar) doldurulur. Microsoft Access ve Microsoft SQL Server söz konusu olduğunda, bu alanlara Kimlik alanları, Corel Paradox söz konusu olduğunda ise Otomatik Artış alanları denir.

    Kullanıcılar ve Roller

    Verilere yetkisiz erişimin önlenmesi, birçok şekilde çözülebilen ciddi bir sorundur. En basiti, tüm tablonun veya bazı alanlarının parola korumasıdır (böyle bir mekanizma, örneğin Corel Paradox'ta desteklenir).

    Şu anda, verileri korumanın başka bir yolu daha popülerdir - adlarla (kullanıcı adları) ve parolalarla (parolalar) bir kullanıcı (kullanıcı) listesi oluşturmak. Bu durumda, herhangi bir veritabanı nesnesinin sahibi belirli bir kullanıcıdır ve bu kullanıcı, diğer kullanıcılara o nesnedeki verileri okuma veya değiştirme veya nesnenin kendisini değiştirme izni verir. Bu yöntem, tüm sunucularda ve bazı masaüstü DBMS'lerde (örneğin, Microsoft Access) kullanılır.

    Bazı DBMS'ler, çoğunlukla sunucu olanlar, yalnızca kullanıcı listesi, aynı zamanda roller. Rol, bir dizi ayrıcalıktır. Belirli bir kullanıcı bir veya daha fazla rol alırsa ve bunlarla birlikte bu rol için tanımlanan tüm ayrıcalıklar.

    Veritabanı sorguları

    Verilerin değiştirilmesi ve seçilmesi, meta veri değişikliği ve diğer bazı işlemler sorgular (sorgu) kullanılarak gerçekleştirilir. Modern DBMS'lerin çoğu (ve bazı uygulama geliştirme araçları), bu tür sorgular oluşturmak için olanaklar içerir.

    Verileri manipüle etmenin bir yolu "örneğe göre sorgulama" (QBE) olarak adlandırılır - örneğe göre sorgulama. QBE, tabloları görsel olarak bağlamak ve sorgu sonucunda görüntülenecek alanları seçmek için kullanılan bir araçtır.

    Çoğu DBMS'de (bazı masaüstü olanlar hariç), QBE kullanarak görsel olarak bir sorgu oluşturmak, özel bir SQL (Yapılandırılmış Sorgu Dili) sorgulama dili kullanarak bir sorgu metninin oluşturulmasıyla sonuçlanır. Doğrudan SQL'de bir sorgu da yazabilirsiniz.

    İmleçler

    Genellikle bir sorgunun sonucu bir dizi satır ve sütundur (veri kümesi). İlişkisel bir tablodan farklı olarak, böyle bir kümede satırlar sıralanır ve sıraları orijinal sorgu (ve bazen dizinlerin varlığı) tarafından belirlenir. Bu nedenle, böyle bir kümede mevcut satırı ve imleç (imleç) olarak adlandırılan bir işaretçiyi tanımlayabiliriz.

    Modern DBMS'lerin çoğu, ortaya çıkan veri kümesinde hem ileri hem de geri gezinmenizi sağlayan çift yönlü imleçleri destekler. Ancak, bazı VTYS'ler yalnızca tek yönlü imleçleri destekler; bu, yalnızca veri kümesinde ilerlemenizi sağlar.

    SQL dili

    Yapılandırılmış Sorgu Dili (SQL), çoğu modern DBMS'de veritabanı sorgularını formüle etmek için kullanılan prosedürel olmayan bir dildir ve şu anda endüstri standardıdır.

    Prosedürel olmayan bir dil, veritabanı ile ne yapılması gerektiğini belirtebileceği, ancak bu işlem için algoritmayı tanımlayamayacağı anlamına gelir. SQL sorgularını işlemeye yönelik tüm algoritmalar, DBMS'nin kendisi tarafından oluşturulur ve kullanıcıya bağlı değildir. SQL dili, birkaç kategoriye ayrılabilen bir dizi ifadeden oluşur:

    • Veri Tanımlama Dili (DDL) - veritabanlarında nesneleri oluşturmanıza, silmenize ve değiştirmenize izin veren bir veri tanımlama dili
    • Veri Manipülasyon Dili (DML), mevcut veritabanı nesnelerindeki verileri değiştirmenize, eklemenize ve silmenize izin veren bir veri yönetim dilidir.
    • Veri Kontrol Dilleri (DCL) - kullanıcı ayrıcalıklarını yönetmek için kullanılan dil
    • İşlem Kontrol Dili (TCL) - operatör grupları tarafından yapılan değişiklikleri yönetmek için kullanılan dil
    • İmleç Kontrol Dili (CCL) - bir imleç tanımlama, yürütme için SQL deyimlerini hazırlama ve diğer bazı işlemler için operatörler.

    Bu dizideki aşağıdaki makalelerden birinde SQL dili hakkında daha fazla bilgi edineceksiniz.

    Kullanıcı Tanımlı Fonksiyonlar

    Bazı DBMS, kullanıcı tanımlı işlevlerin (UDF Kullanıcı Tanımlı İşlevler) kullanımına izin verir. Bu işlevler genellikle dış kitaplıklarda depolanır ve sorgularda, tetikleyicilerde ve saklı yordamlarda kullanılmadan önce veritabanına kaydedilmeleri gerekir.

    Kullanıcı tanımlı işlevler kitaplıklarda yer aldığından, söz konusu DBMS'nin üzerinde çalıştığı platform için kitaplıklar oluşturmanıza izin veren herhangi bir geliştirme aracı kullanılarak oluşturulabilirler.

    İşlemler

    İşlem, veriler üzerinde toplu olarak gerçekleştirilen veya toplu olarak iptal edilen bir işlemler grubudur.

    Bir işlemin tamamlanması (Commit), işlemin içerdiği tüm işlemlerin başarıyla tamamlandığı ve çalışmalarının sonucunun veritabanına kaydedildiği anlamına gelir.

    Bir işlemin geri alınması, işlemin parçası olan ve halihazırda gerçekleştirilen tüm işlemlerin iptal edilmesi ve bu işlemlerden etkilenen tüm veritabanı nesnelerinin orijinal durumlarına döndürülmesi anlamına gelir. İşlemleri geri alma olasılığını uygulamak için birçok DBMS, geri alma sırasında orijinal verileri geri yüklemenize izin veren günlük dosyalarına yazmayı destekler.

    Bir işlem, iç içe geçmiş birkaç işlemden oluşabilir.

    Bazı DBMS'ler iki aşamalı işlem tamamlamayı (iki aşamalı kesinleştirme) destekler - bu, işlemlerin aynı DBMS ile ilgili çeşitli veritabanlarında gerçekleştirilmesine izin veren bir işlemdir.

    Dağıtılmış işlemleri (yani, farklı DBMS tarafından yönetilen veritabanları üzerindeki işlemler) desteklemek için işlem izleyicileri adı verilen özel araçlar vardır.

    Çözüm

    Bu yazıda, ilişkisel bir DBMS oluşturmanın temel kavramlarını, veri tasarımının temel ilkelerini tartıştık ve ayrıca veritabanlarında hangi nesnelerin oluşturulabileceğinden bahsettik.

    Bir sonraki yazıda okuyucularımıza en popüler masaüstü DBMS'yi tanıtacağız: dBase, Paradox, Access, Visual FoxPro, Works ve ana özelliklerini tartışacağız.

    BilgisayarBasın 3 "2000

    VTYS işlevleri.

    DBMS fonksiyonları yüksek ve düşük seviyededir.

    Üst düzey özellikler:

    1. Veri tanımı - bu işlev kullanılarak, veritabanında hangi bilgilerin saklanacağı belirlenir (tip, veri özellikleri ve bunların nasıl birbirine bağlanacağı).

    2. Veri işleme. Bilgi birçok şekilde işlenebilir: örnekleme, filtreleme, sıralama, bir bilgiyi diğeriyle birleştirme, toplam değerleri hesaplama.

    3. Veri yönetimi. Bu işlevle, verileri kimlerin görebileceğini, düzeltebileceğini veya yeni bilgiler ekleyebileceğini belirtir ve paylaşım kurallarını tanımlarsınız.

    Düşük seviye özellikler:

    1. Harici bellekte veri yönetimi;

    2. RAM tampon yönetimi;

    3. İşlem yönetimi;

    4. Değişiklik günlüğünün veritabanına girişi;

    5. Veritabanı bütünlüğünün ve güvenliğinin sağlanması.

    işlem DBMS tarafından baştan sona izlenen ve bir işlem gerçekleştirilmezse tüm dizinin iptal edildiği, bölünmez bir işlem dizisi olarak adlandırılır.

    VTYS günlüğü - kullanıcı tarafından erişilemeyen ve veritabanındaki tüm değişikliklerle ilgili bilgileri kaydetmek için kullanılan özel bir veritabanı veya ana veritabanının bir parçası.

    DBMS günlüğüne giriş donanım arızaları ve arızalarının yanı sıra yazılımdaki hatalar varlığında veritabanındaki depolamanın güvenilirliğini sağlamak için tasarlanmıştır.

    Veritabanı Bütünlüğü - bu veri tabanının bir özelliğidir, yani tam, tutarlı ve konu alanı bilgilerini yeterince yansıtan bilgiler içerir.

    VTYS sınıflandırması.

    VTYS sınıflandırılabilir:

    1. Program türüne göre:

    A. Veritabanı sunucuları (örneğin, MS SQL Sunucusu, InterBase (Borland)) - bilgisayar ağlarındaki veri merkezlerini düzenlemek ve SQL deyimlerini (yani sorgulara yanıt veren programlar) kullanan istemci programları tarafından talep edilen veritabanı yönetimi işlevlerini uygulamak için tasarlanmıştır;

    B. Veritabanı İstemcileri – veri talep eden programlar. PFSUBMS, elektronik tablolar, kelime işlemciler, e-posta programları istemci programları olarak kullanılabilir;

    C. Tamamen işlevsel veritabanları (MS Access, MS Fox Pro), tablolar oluşturmanıza ve değiştirmenize, veri girmenize, sorgular oluşturup biçimlendirmenize, raporlar geliştirmenize ve bunları yazdırmanıza olanak tanıyan gelişmiş bir arayüze sahip bir programdır.

    2. DBMS veri modeline göre (veritabanının yanı sıra):

    A. Hiyerarşik - ağaç benzeri bir bilgi depolama yapısına dayanır ve bir bilgisayar dosya sistemine benzer; ana dezavantaj çoktan çoğa ilişkinin uygulanamamasıdır;

    B. - hiyerarşik olanların yerini aldı ve uzun sürmedi çünkü ana dezavantaj, ciddi uygulamalar geliştirmenin karmaşıklığı. Bir ağ ile hiyerarşik bir yapı arasındaki temel fark, hiyerarşik bir "kayıt-çocuk" yapısında yalnızca bir ebeveyne sahipken, bir ağ çocuğunda herhangi bir sayıda ataya sahip olabilmesidir;

    C. ilişkisel - verileri, aralarında belirli ilişkilerin olduğu tablolara yerleştirilen;

    D. Nesne odaklı - verileri nesneler biçiminde depolarlar ve onlarla çalışmanın ana avantajı, onlara nesne yönelimli bir yaklaşım uygulayabilmenizdir;

    e. Hibrit, yani nesne-ilişkisel - ilişkisel ve nesne yönelimli veritabanlarının yeteneklerini birleştirin. Böyle bir veritabanı örneği Oracle'dır (önceden ilişkiseldi).

    3. VTYS'nin münferit bölümlerinin konumuna bağlı olarak şunlar vardır:

    A. yerel - tüm parçaları tek bir bilgisayarda bulunan;

    B. ağ.

    Ağlar şunları içerir:

    - dosya sunucusu organizasyonu ile;

    Böyle bir organizasyonda, tüm veriler, dosya sunucusu adı verilen ve ağa bağlı olan tek bir bilgisayarda bulunur. ararken gerekli bilgi birçok gereksiz bilgi de dahil olmak üzere tüm dosya aktarılır. Ve yalnızca yerel bir kopya oluştururken gerekli kayıt bulunur.

    - müşteri-sunucu organizasyonu ile;

    Veritabanı sunucusu istemciden bir istek alır, verilerde arama yapar. istenen giriş ve müşteriye iletir. Sunucuya yapılan sorgu, yapılandırılmış sorgulama dili SQL'de oluşturulur, bu nedenle veritabanı sunucularına SQL sunucuları denir.

    - dağıtılmış VTYS geniş bir alana yayılmış onlarca ve yüzlerce sunucu içerir.

    İlişkisel veritabanı modelinin ana hükümleri.

    ilişkisel veritabanı veritabanı, tüm verilerin tablolar şeklinde düzenlendiği ve bu veriler üzerindeki tüm işlemlerin tablolar üzerindeki işlemlere indirgendiği veritabanı olarak adlandırılır.

    İlişkisel veritabanlarının özellikleri:

    1. Veriler, sütun ve satırlardan oluşan tablolarda saklanır;

    2. Her sütun ve satırın kesiştiği noktada bir değer vardır;

    3. Her sütun - alanın kendi adı - bir öznitelik olarak hizmet eden kendi adı vardır ve bir sütundaki tüm değerler aynı türdedir;

    4. Sütunlar, rastgele düzenlenmiş satırların aksine, tablo oluşturulduğunda ayarlanan belirli bir sırada düzenlenir. Tablonun tek bir satırı olmayabilir, ancak en az bir sütunu olmalıdır.

    İlişkisel veritabanı terminolojisi:

    İlişkisel veritabanı öğesi Sunum Formu
    1. Veritabanı Masa Seti
    2. Veritabanı şeması Tablo başlık seti
    3. Tutum Masa
    4. İlişki şeması Tablo sütun başlığı satırı
    5. Öz Nesne özelliklerinin açıklaması
    6. Öznitelik Sütun başlığı
    7. Alan Geçerli öznitelik değerleri kümesi
    8. Birincil anahtar Bir tablodaki her girişi benzersiz bir şekilde tanımlayan benzersiz bir tanımlayıcı
    9. Veri tipi Tablodaki öğelerin değer türü
    10. Demet Dize (kayıt)
    11. Önemlilik Tablodaki satır sayısı
    12. İlişki derecesi alan sayısı
    13. Vücut ilişkisi Çoklu ilişki demetleri

    İlişkisel bir veritabanı tasarlarken, veriler birkaç tabloya yerleştirilir. Anahtarlar kullanılarak tablolar arasında ilişkiler kurulur. Tabloları bağlarken, bir ana ve bir ek (alt) tablo ayırt edilir.

    Tablolar arasında aşağıdaki ilişki türleri vardır:

    1. İletişim türü 1:1 (bire bir) ana tablodaki her girişin ek tablodaki bir girişe karşılık geldiği ve tersine, ek tablodaki her girişin ana tablodaki bir girişe karşılık geldiği anlamına gelir.

    2. 1:M formunun ilişkisi (bire çok) ana tablodaki her girişin ek tablodaki birkaç girişe karşılık geldiği ve tersine, ek tablodaki her girişin ana tablodaki yalnızca bir girişe karşılık geldiği anlamına gelir.

    3. M: 1 formunun ilişkisi (çoktan bire) ana tablodaki bir veya daha fazla kaydın, ek tablodaki yalnızca bir kayda karşılık geldiği anlamına gelir.

    4. M:M (çoktan çoğa) formunun ilişkisi - bu, ana tablonun birkaç kaydının ek tablonun birkaç kaydına karşılık geldiği veya tam tersi olduğu zamandır.

    5. MS Access'in temel bileşenleri.

    MS Access'in ana bileşenleri (nesneleri) şunlardır:

    1. Tablolar;

    3. Şekiller;

    4. Raporlar;

    5. Makrolar:

    Modüller.

    Masa verileri kayıtlar (satırlar) ve alanlar (sütunlar) biçiminde depolamak için tasarlanmış bir nesnedir. Her alan, kaydın ayrı bir bölümünü içerir ve her tablo, belirli bir konuyla ilgili bilgileri depolamak için kullanılır.

    Rica etmek - tablolarda saklanan veriler hakkında bir soru veya değiştirilecek kayıtları seçme talimatı.

    Biçim tablo alanlarına veri girmek, görüntülemek ve değiştirmek için kontroller yerleştirebileceğiniz bir nesnedir.

    Rapor kullanıcı tanımlı bilgileri belirli bir biçimde sunmanızı, görüntülemenizi ve yazdırmanızı sağlayan bir nesnedir.

    Makro - belirli bir görevi otomatikleştirmek için kullanılabilen bir veya daha fazla makro. Makro, makronun temel yapı taşıdır; bir görevi otomatikleştirmek için diğer makrolarla birleştirilebilen bağımsız bir talimat.

    Modül - tek bir isim altında saklanan bir dizi açıklama, talimat ve prosedür. MS Access'te üç tür modül vardır: form modülü, rapor modülü ve genel modül. Formlar ve Raporlar modülleri, formlar ve raporlar için yerel bir program içerir.

    6. MS Access'teki tablolar.

    MS Access, tablo oluşturmak için aşağıdaki yöntemlere sahiptir:

    1. Tablo modu;

    2. Yapıcı;

    3. Tablo Sihirbazı;

    4. Tabloları içe aktarın;

    5. Tablolarla ilişki.

    İÇİNDE masa modu veriler boş bir tabloya girilir. Veri girişi için 30 alanlı bir tablo sağlanmıştır. Kaydettikten sonra, MS Access her alana hangi veri türünün atanacağına kendisi karar verir.

    Yapıcı bağımsız olarak alanlar oluşturma, alanlar için veri türlerini, alan boyutlarını seçme ve alan özelliklerini ayarlama yeteneği sağlar.

    Modda bir alan tanımlamak için Yapıcı verilmiştir:

    1. Alan adı , her tabloda harflerin, sayıların, boşlukların ve özel karakterler, nın istisnası ile " .!” “ ". Maksimum ad uzunluğu 64 karakterdir.

    2. Veri tipi izin verilen değerlerin türünü ve aralığını ve bu alan için ayrılan bellek miktarını tanımlar.

    MS Erişim Veri Türleri

    Veri tipi Tanım
    Metin Adlar ve adresler, telefon numaraları, posta kodları gibi metin ve sayılar (en fazla 255 karakter).
    Not alanı Yorumlar ve açıklamalar gibi uzun metin ve sayılar (en fazla 64.000 karakter).
    Sayısal Genel tip parasal hesaplamalar dışında matematiksel hesaplamalara izin veren sayısal veriler için veriler.
    Tarih Saat Tarih ve saat değerleri. Kullanıcı, standart şekilleri seçebilir veya özel bir biçim oluşturabilir.
    parasal Parasal değerler. Parasal hesaplamalar için sayısal veri türlerinin kullanılması önerilmez çünkü hesaplamalarda yuvarlanabilirler. Para birimi değerleri, her zaman ondalık noktadan sonra belirtilen sayıda ondalık basamakla çıkarılır.
    Tezgah Otomatik olarak atanan sıralı numaralar. Numaralandırma 1'den başlar. Sayaç alanı, bir anahtar oluşturmak için kullanışlıdır. Bu alan, Size özelliği Long Integer olarak ayarlanmış bir sayısal tür alanıyla uyumludur.
    Mantıklı Değerler Evet/Hayır, Doğru/Yanlış, Açık/Kapalı, olası iki değerden biri.
    OLE nesne alanı OLE protokolünü destekleyen diğer programlarda oluşturulan nesneler.

    3. En önemli alan özellikleri şunlardır:

    - Alan boyutu alanda depolanan verilerin maksimum boyutunu ayarlar.

    - Alan Formatı belirli bir veri türünün görüntüleme biçimidir ve verileri ekranda görüntülerken veya yazdırırken sunma kurallarını belirtir.

    - alan etiketi tablolarda, formlarda, raporlarda görüntülenen metni ayarlar.

    - Değer koşulu girişi kontrol etmenizi sağlar, giriş değerlerine kısıtlamalar getirir, koşullar ihlal edilirse girişi yasaklar ve Hata mesajı özelliği tarafından belirtilen metni görüntüler;

    - Hata mesajı Değer Koşulu tarafından belirlenen kısıtlamalar ihlal edildiğinde ekranda görüntülenen mesajın metnini ayarlar.

    Kontrol tipi– tablo tasarımcısı penceresindeki Değiştirme sekmesinde ayarlanan bir özellik. Bu özellik, alanın tabloda görüntülenip görüntülenmeyeceğini ve hangi biçimde - alan veya açılan kutu olarak - belirler.

    Benzersiz (birincil) anahtar tablolar, birkaç alan dahil olmak üzere basit veya bileşik olabilir.

    Anahtar tanımlamak için, anahtarı oluşturan alanlar seçilir ve araç çubuğundaki düğmeye basılır. anahtar alan veya komut yürütülür Düzenle / anahtar alan.


    ©2015-2019 sitesi
    Tüm hakları yazarlarına aittir. Bu site yazarlık iddiasında bulunmaz, ancak ücretsiz kullanım sağlar.
    Sayfa oluşturma tarihi: 2016-02-16