• İlişkisel cebir, ilişkisel cebirin işlemleri. Veritabanlarında İlişkisel Cebir: İşlemler, Örnekler

    Eklemek - veritabanına bir giriş yapın ve dahil etme moduna bağlı olarak, onu bir bağımlı olarak ilan edildiği bir grup ilişkisine dahil edin veya herhangi bir grup ilişkisine dahil etmeyin.
    Grup İlişkisine Dahil Et - mevcut bir alt kaydı bir sahip kaydıyla ilişkilendirin.
    Değiştir - mevcut bir bağımlı kaydı, aynı grup ilişkisindeki başka bir sahip kaydına bağlama.
    Yenile - daha önce alınan kaydın öğelerinin değerini değiştirin.
    Çıkarmak - kayıtları sırayla anahtar değerine göre ve grup ilişkilerini kullanarak çıkarın - sahipten üye kayıtlarına ve alt kayıttan kümenin sahibine gidebilirsiniz.
    Silmek - kaydı veritabanından kaldırın. Bu giriş, grup ilişkisinin sahibiyse, alt girdilerin üyelik sınıfı ayrıştırılır. Zorunlu üyeler daha önce grup ilişkisinden çıkarılmalıdır, sabit üyeler sahibi ile birlikte silinir, isteğe bağlı olanlar veritabanında kalır.
    Grup ilişkisinden hariç tut - sahip kaydı ile üye kaydı arasındaki ilişkiyi kırın.

    ilişkisel veritabanı modeli

    İlk önce, modeldeki tüm veriler yalnızca tablolar ve aralarındaki ilişkiler şeklinde sunulur. İlişkisel model, verilerin tekdüze bir temsilini sağlayan tek modeldir.

    ikinci eleman modeller ilişkisel olarak eksiksiz bir dildir. bütünlükİlişkisel bir modele yapılan bir uygulamadaki dil, herhangi bir şeyi yerine getirmesi gerektiği anlamına gelir. ilişkisel cebir işlemi. Ayrıca, dil herhangi bir şeyi tanımlamalıdır. rica etmek satırlarıyla değil, tablolarla yapılan işlemler şeklinde. Bu dillerden biri SQL.

    Üçüncü eleman ilişkisel model, ilişkisel modelin belirli bir süreyi sürdürmesini gerektirir. bütünlük kısıtlamaları. Tablodaki her satırın benzersiz olması gerekir. tanımlayıcı birincil anahtar denir. İkinci kısıtlama şuraya konur: bütünlük tablolar arasındaki bağlantılar.

    Nesne yönelimli model.

    Nesne yönelimli veritabanlarında, ilişkisel veritabanlarından farklı olarak kayıtlar değil, nesneler (metin, ses ve video bilgileri, belgeler ve diğer nesneler) depolanır. Ayrıca önemli olan, nesnelerin durumunu kaydetme görevidir. yeniden başlar uygulama programı. Ancak gelişmiş matematiksel aparat, genel nesne yönelimli veri modeli, bulunmuyor.

    Çoğu OODBMS, veri yönetimi prosedürlerinin dahil edildiği bir kitaplıktır. uygulama programı. Nesne yönelimli sistemlerin avantajlarına rağmen - uygulama karmaşık veri türleri, bağlantı programlama dilleri vb. ile - yakın gelecek için ilişkisel üstünlüğü VTYS garantili.

    Nesne- ilişkisel VTYS

    Nesne-İlişkisel ve Nesne Arasındaki Fark VTYS: ilki ilişkisel şema üzerinde bir üst yapıdır, ikincisi ise başlangıçta nesne yönelimlidir. ana özellik ve nesne-ilişkisel (ve nesne) arasındaki fark VTYS ilişkisel yalanlardan OR VTYS C++ gibi dahili veya harici bir Nesne Yönelimli (OO) programlama dili ile entegre, java.

    nesne ilişkisel VTYSörneğin, iyi bilinen Oracle Veritabanı , Microsoft SQL Server, PostgreSQL, Microsoft Erişimi.

    Bir etki alanı modeli oluşturmak için ilişkisel yaklaşım.

    · konu alanı bir dizi bireysel tarafından modellenmiştir bilgi nesneleri(varlıklar), her biri iki boyutlu tablosuyla tanımlanır;

    Tablolar arasında ilişkiler var

    Tablonun her öğesi bir veri öğesidir;

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

    · her sütun bir varlık niteliğini tanımlar;

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

    · dize, bir varlık örneği için öznitelik değerleri içerir;

    Tabloda özdeş satırlar yok (birincil anahtarın varlığı);

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

    ilişkilerin normalleşmesi- yinelemeyi ortadan kaldırmanıza izin veren, veritabanında depolanan verilerin tutarlılığını sağlayan, veritabanını korumak (girmek, düzeltmek) için işçilik maliyetlerini azaltan, ilişkilerin (tabloların) oluşumuna ilişkin resmi bir kısıtlama aygıtı.

    Birincil normal form

    İlişki (tablo) normalleştirilmiş veya indirgenmiş olarak adlandırılır Birincil normal form tüm nitelikleri basitse (aşağıda bölünemezler).

    İlişkiyi birinciye dönüştür normal biçim ilişkinin özniteliklerinin (alanlarının) sayısında bir artışa ve anahtarda bir değişikliğe yol açabilir.

    tablo içinde ikinci normal form birincinin gereklerini karşılıyorsa normal biçim ve birincil anahtarda yer almayan tüm alanlar tam bir işlevsel bağımlılık birincil anahtarla, yani herhangi bir değil anahtar alan tam set tarafından benzersiz bir şekilde tanımlanır anahtar alanlar.

    · tablo, bir tür nesne hakkında veri içermelidir;

    · her tablo, her satır için benzersiz bir tanımlayıcı (veya birincil anahtar) oluşturan bir veya birkaç alan içermelidir;

    · tüm anahtar olmayan alanlar, verilen tablonun tam benzersiz tanımlayıcısı tarafından tanımlanmalıdır.

    üçüncü normal form

    Gereklilik üçüncü normal form tüm anahtar olmayan alanların yalnızca birincil anahtara bağlı olduğu ve birbirine bağlı olmadığı gerçeğine indirgenir. Başka bir deyişle, herhangi bir başka veritabanı alanının değerini değiştirmeden herhangi bir anahtar olmayan alanın değerini değiştirebilmelisiniz.

    Bağlantı türleri. İlişki Özellikleri

    · bire bir ilişki(1:1), bir tablodaki her girişin başka bir tablodaki en fazla bir girişle eşleştiği anlamına gelir.

    · Bire Çok İlişki(1:M), bir tablodaki her kaydın başka bir tablodaki 0 ​​veya 1 veya daha fazla kayda karşılık geldiği anlamına gelir.

    · Çoktan bire ilişki(M:1), daha önce ele alınan birden çoğa türe benzer. Nesneler arasındaki ilişkinin türü bakış açısına bağlıdır.

    · Çoktan çoğa ilişki(MM). iki tablo arasında, bir tablodaki her kayıt diğer tablodaki 0 ​​veya daha fazla kayda karşılık geldiğinde veya tam tersi olduğunda gerçekleşir.

    Basit ve bileşik anahtarlar

    birincil anahtar değerleri her kayıt için benzersiz olan tek bir tablo alanından oluşabilir. Çok birincil anahtar basit anahtar denir.

    Eğer masa tek bir benzersiz alana sahip değil, birincil anahtar değerleri benzersizliği garanti eden birkaç alandan oluşabilir.

    Çok birincil anahtar isminde bileşik anahtar

    Her türlü ilişki, birincil anahtarlar ve diğer tablolardaki değerlerine bağlantılar kullanılarak gerçekleştirilir. Diğer tabloların birincil anahtarlarının kopyaları olan bu tür başvurulara yabancı anahtarlar denir.

    Hiyerarşik kabul edilen ve ağ örneği Veri tabanı, işletmenin bölümleri ve bunlarda çalışan çalışanlar hakkında ilişkisel modele göre bilgi içeren şöyle görünecektir:

    İLE bağ"çoktan çoğa", bunun yardımıyla ek bir tablo aracılığıyla uygulanır. bağlantı" türünde iki bağlantıya indirgenecek birden çoğa".

    Tipik olarak, veritabanı sistemleri, kullanıcılarının örnekleri sorgulamasına yardımcı olabilecek bir sorgulama dili ile donatılmıştır. Bu tür iki tür vardır - ilişkisel cebir ve ilişkisel hesap. İlki, ilişki örneklerini girdi olarak alan ve ilişki örneklerini çıktı olarak çıkaran prosedüreldir. Bu unary için kullanır veya ikili hesap. İlişkisel cebir yinelemeli olarak yapılır ve ilişkiler olarak ele alınır.

    Kartezyen çarpım (X)

    İki farklı ilişkiden gelen bilgileri tek bir ilişkide birleştirir.

    Tanımlamalar - r Χ s,

    burada r ve s oranlardır ve çıktıları şu şekilde tanımlanır:

    r Χ s = (qt | q ∈ r ve t ∈ s).

    Çözüm. Bir ders kitabıyla yazılmış tüm kitapları ve makaleleri gösteren bir ilişki ayarlar.

    İşlemi yeniden adlandırın (ρ).

    İlişkisel cebirin bağıntısı sonuçlardır, ancak herhangi bir adı yoktur. Yeniden adlandırma işlemi, küçük bir Yunanca harfle gösterilen çıktı değerini değiştirmenize olanak tanır. ρ .

    atama - ρ x(E),

    burada E ifadesinin sonucu x adıyla saklanır.

    Ek işlemler:

    • kavşağı ayarlayın;
    • atama;
    • doğal bağlantı.

    ilişkisel hesap

    Prosedürel olmayan bir sorgulama dilidir, yani ne yapılması gerektiğini söyler ama nasıl uygulanacağını açıklamaz. İlişkisel hesap iki biçimde bulunur:

    • bir demetin korelasyon hesabı;
    • değişken aralıklarını filtreleme.

    Gösterim - T/State: Bir koşulu karşılayan tüm T demetlerini döndürür. Sonuç. İsimli demetleri döndürür. TRC ölçülebilir. Varoluşsal (∃) ve evrensel niceleyicileri (∀) kullanabilirsiniz. Çözüm. Yukarıdaki sorgu öncekiyle aynı sonucu verecektir.

    Etki alanı ilişkisel hesabı DRC

    Filtre değişkeni, demetin tamsayı değerleri yerine özniteliklerin etki alanını kullanır (yukarıda belirtilen TRC'de yapıldığı gibi).

    Gösterim - (a 1 , a 2 , a 3 , ..., an | P (a 1 , a 2 , a 3 , ..., an n)),

    burada a1, a2 niteliklerdir ve P, dahili değerlerle oluşturulan formülleri belirtir.

    Çözüm. Konunun bir veritabanı olduğu TutorialsPoint ilişkisinden makale, sayfa ve konuyu ayarlar.

    TRC gibi, DRC de varoluşsal ve evrensel niceleyiciler kullanılarak yazılabilir. DRC ayrıca ilişkisel cebir operatörlerini de içerir. Noktalar arasındaki ilişkilerin hesap, hesap ve korelasyon ifadesinin gücü eşdeğerdir.

    İlişkisel hesap ve cebirin varyasyonları ve şemaları

    ER modeli, diyagramlarda kavramsallaştırıldığında, iyi inceleme anlaşılması daha kolay temel ilişkiler. Şematik gösterimler ilişkisel bir şemaya eşlenebilir, yani birbirleriyle birlikte oluşturulabilirler. Tüm ER kısıtlamaları içe aktarılamıyor ilişkisel model, ancak yaklaşık bir yapı oluşturulabilir. Grafikleri bu sisteme dönüştürmek için çeşitli işlemler ve algoritmalar mevcuttur. Bazıları otomatik, diğerleri manuel olarak oluşturulur. ER çizelgeleri temel olarak aşağıdaki kriterlerden oluşur:

    • varlık ve nitelikleri;
    • yukarıdaki değerler arasında bir ilişki olan bir bağlantı.

    Nesnelerin ve ilişkilerin karşılaştırılması farklı şekillerde ve şemalarda gerçekleşir. Örneğin, bir varlık, bazı niteliklere sahip gerçek dünya nesnesidir. Eşleştirme işlemi, algoritma aşağıdaki gibidir:

    • her nesne için bir tablo oluşturun;
    • nitelikler, karşılık gelen veri türlerine sahip tablo alanları haline gelmelidir;
    • bir birincil anahtar bildirin.

    Bir ilişki, varlıklar arasındaki bir ilişkidir. Derleme işlemi aşağıdaki gibidir:

    • ilişkiler için bir tablo oluşturun;
    • eklemek birincil anahtarlar tüm katılımcı varlıklar, ilgili veri türleri ile birlikte tablo alanları olarak;
    • ilişkinin herhangi bir özelliği varsa, her bir özelliği bir tablo alanı olarak ayarlayın;
    • katılan nesneler için diğerlerini oluşturan birincil anahtara katılın;
    • tüm yabancı anahtar kısıtlamalarını belirtin.

    Zayıf kümelerin ve hiyerarşik nesnelerin gösterimi belli bir sisteme göre gerçekleşir. Her şeyden önce, temel kaideleri ve anlamları anlamak gerekir. Zayıf bir özellik seti, kendisiyle ilişkilendirilmiş herhangi bir birincil anahtara sahip olmayan bir özellik setidir. Görüntüleme işlemi aşağıdaki gibidir:

    • için bir tablo oluştur zayıf küme nesneler;
    • tüm nitelikleri şemaya bir alan olarak ekleyin;
    • tanımlama için birincil anahtarı belirtin;
    • tüm yabancı anahtar kısıtlamalarını ayarlayın.

    Hiyerarşik nesnelerin haritalanması, sıralı varlıklar biçiminde gerçekleşen ilişkisel cebir dilinin uzmanlaşmasına veya genelleştirilmesine dayanır. Algoritma aşağıdaki gibidir:

    • tüm yüksek alt düzey nesneler için tablolar oluşturun;
    • birincil anahtarlar ekleyin;
    • düşük düzeyde, alt düzey nesnelerin diğer tüm niteliklerini uygulayın;
    • tablonun birincil anahtarlarını bildirin;
    • yabancı anahtar kısıtlamaları ayarlayın.

    Bilgilerin tanımlanması, saklanması ve değiştirilmesi için mevcut seçenekler

    SQL, ilişkisel veritabanları için bir programlama dilidir. Demetlerin cebir ve korelasyon hesabı üzerine geliştirilmiştir. SQL, tüm önemli DBMS dağıtımlarıyla birlikte bir paket olarak gelir. Bunları işlemek için hem verileri hem de dilleri içerir. Tanım özelliklerini kullanma SQL verileri ilişkisel cebir, veritabanının şemasını tasarlayabilir ve değiştirebilirsiniz, kontrol ve ayarlama özellikleri ile veri değişiklikleri, sistemde yüklü bilgileri depolamanıza ve almanıza izin verir. Yapıyı ve sistemi tanımlamak için aşağıdaki komut setini kullanır:

    • DBMS'den yeni tablolar ve görünümler oluşturur.
    • komutlar atar.
    • veritabanı şemasını değiştirir.
    • bu komut string türündeki bir nesneye bir öznitelik ekler.

    SQL, bir Veri Manipülasyon Dili (DML) ile donatılmıştır. Bilgileri ekleyerek, güncelleyerek ve silerek veritabanı örneğini değiştirir. DML, tüm verilerin değiştirilmesinden sorumludur. SQL, DML bölümünde aşağıdaki komut dizisini içerir:

    1. SEÇ, şunlardan biridir: temel komutlar rica etmek. İlişkisel cebirin izdüşüm işlemine benzer. Nitelikleri WHERE yan tümcesinde açıklanan koşula göre seçer.
    2. KİMDEN - Bu bölüm, özniteliklerin seçileceği/yansıtılacağı bağımsız değişken olarak bir ad alır. Birden fazla isim verilmesi durumunda bu madde Kartezyen çarpıma karşılık gelir.
    3. NEREDE - Bu bölüm, öngörülen özniteliği nitelendirmek için karşılanması gereken yüklemi veya koşulları tanımlar.

    Ayrıca komutlar da vardır:

    • sokmak;
    • değişen değerler;
    • kaldırma.

    İlişkisel Cebir Sorguları Oluşturma

    Bir arama oluştururken görev, doğru çıktıya yol açacak bir işlem yapısı bulmaktır. İlişkisel cebirin temel işlemleri, işlenen olarak bir veya iki ilişki içeren basit işlemlerdir. Sekansın birleşik etkileri nihai sonucu belirler. Veritabanlarındaki ilişkisel cebir sistemi oldukça basit olduğundan, nihai çıktıya ulaşılmadan önce birçok ara sonuç elde edilebildiğinden, alınan yeni verileri üreten işlenenler olarak da kullanılırlar.

    Çoğu operatör için, sorguların sırası ve yürütülmeleri önemli değildir; bu, ara verileri farklı şekillerde şekillendirip birleştirerek aynı çıktının elde edilebileceği anlamına gelir. Uygulamada, veritabanı aramaları oldukça kolaydır. İşlemleri ve ara sonuçları gerçekleştirme sistemi, sorgu iyileştirici tarafından belirlenir. Soruları, gereksinimleri formüle ederken,
    önce cevaba ulaşmak için hangi ilişkilerin gerekli olduğunu seçin ve ardından işlemleri ve ara sonuçları belirtin. Bir sonuç veri tabanındaki ilişkisel cebir sorgusunun yapısı bir diyagram olarak gösterilebilir. Gereksinim optimize ediciler, yürütmeyi olabildiğince verimli bir şekilde organize etmeye çalışır. Uygulamada, bu genellikle ara sonuçları olabildiğince çabuk en aza indirmeye çalıştıkları anlamına gelir. İlişkisel cebirin yaygın örnekleri bu konuda yardımcı olacaktır.

    1999 yılı muayenesinde eksiklikler bulunan 1996 model yılı otomobiller hakkında bilgiler.

    İlk olarak, ilişkinin tüm özniteliklerinin değerlerini anlamak için makineler hakkında bilgi görüntülenir. Muayenelerle ilgili bilgiler "Kontrol" tablosunda saklanır ve hatalar bulunursa "Problem" tablosuna kaydedilir. Bu nedenle, gerekli bilgileri elde etmek için bu üç tabloya ihtiyaç vardır.

    Sadece 1996 arabaları ilgi çekicidir. diziliş araç, araç bilgileri tablosunun satırında ayarlanan özniteliğin değeri olarak temsil edilir. İlk ara sonuç, 1996 varyantlarını temsil eden demetlerden oluşur.

    Bu nedenle, yalnızca bu dönemi kapsayan satırlara ihtiyaç vardır. Bunları ayıklamak için bir seçim kullanmanız gerekir. Şimdi gerekli olan arabalar ve muayeneler var. Dizeler daha sonra birleştirme işlemi kullanılarak birleştirilir. Ortak kayıt numarasına bağlanmalıdırlar, tek ortak sütun olduğu için doğal birleştirme kullanılır.

    Testler sırasında herhangi bir sorun bulunup bulunmadığını öğrenmek için sorun satırlarını testle ilişkilendirmelisiniz. Kontrol sıralarını arabalara bağladıktan sonra bu sonucu hata tablosuna bağlayabilirsiniz. Üyelik, ortak kayıt numarasına ve doğrulanma tarihine dayanmalıdır. Bunlar tablolardaki tek ortak sütunlardır, bu nedenle doğal birleştirme kullanılır.

    Ara sonuçları olmayan hesaplama çeşitleri

    Gerekli Bilgiler: Model yılı 1995 veya 2000 için test edilmemiş daha eski araçlar için sürücünün adı. Ad, "Sürücü" tablosundadır. Kanun yaptırımı"Muayene ve kantin vagonundaki arabalar" tablosunda açıklanmıştır. Yani bu üç tabloya ihtiyaç var. Öncelikle 2000 yılı için muayenesi yapılmamış arabaları bulmanız gerekiyor. Sadece tabloda listelenen denetimleri kullanarak bu sorunu çözmek mümkün değildir, çünkü uygulanmayanlarla değil, yapılan denetimlerle ilgili verileri içerir. Bu sorun, 2000 yılından önce kontrol edilen tamamlayıcı araçlara bakılarak çözülür. Aslında, sadece kayıt numaralarına ihtiyaç vardır.

    Herhangi bir bilgiyi nasıl değiştirebileceğinizi veya bulabileceğinizi gösteren, yukarıda listelenenlerin yanı sıra başka örnekler de vardır. Sorgu varyantları, özel işlemler kullanılarak optimize edilebilir. Aslında, veri aramayı ve bulmayı olabildiğince kolay ve basit hale getirmek için ilişkisel bir hesap modeli vardır.

    Bilgilerin güvence altına alındığı ve korunduğu yer

    Cebirler, kayıtları içeren dosya formatlarında saklanır. Açık fiziksel seviye gerçek bilgiler bazı cihazlarda elektromanyetik formatta sabitlenir. Bu depolama aygıtları üç kategoriye ayrılabilir:

    1. Öncelik. Bu kategori, CPU tarafından doğrudan erişilebilen belleği içerir. kayıtlar, hızlı hafıza(önbellek) ve ana (RAM), tümü ana kart veya yonga setinde bulunduğundan, merkezi tarafından doğrudan erişilebilir. Bu depolama tipik olarak çok küçük, ultra hızlı ve kararsızdır. Sürdürmek için bir devlet gerekir kalıcı kaynak beslenme. Bir arıza durumunda, tüm verileri kaybolur.
    2. İkincil. İleride kullanmak üzere bilgi depolamak için kullanılır veya Yedek kopya. Yonga setinin parçası olmayan bellek aygıtlarını içerir veya anakart işlemci, örneğin manyetik diskler, optik diskler (DVD, CD vb.), sabit diskler, flash sürücüler ve manyetik bantlar.
    3. Üçüncül. Büyük miktarda veri depolamak için kullanılır. Bu tür depolama aygıtları bilgisayar sisteminin dışında olduğundan, hız açısından en yavaş olanlardır. Bu depolama aygıtları temel olarak tüm sistemi yedeklemek için kullanılır. Optik diskler ve manyetik bantlar, üçüncül depolama olarak yaygın şekilde kullanılmaktadır.

    İlişkisel cebirin özel işlemleri sorgulama etkinliği için önemlidir.

    Depolama Yapısı

    Bir bilgisayar sisteminin iyi tanımlanmış bir bellek hiyerarşisi vardır. CPU, yerleşik kayıtların yanı sıra ana sisteme doğrudan erişime sahiptir. Ana bellek erişim süresi açıkça işlemci hızından daha azdır. Bu tutarsızlığı en aza indirmek için bir önbellek tanıtılır. Önbellek, en hızlı erişim süresini sağlar ve CPU tarafından en sık erişilen verileri içerir.

    en çok bellek hızlı erişim en pahalısıdır. Büyük depolama aygıtları çok az hız sağlar ve daha ucuzdur, ancak bir işlemci kaydına veya önbelleğe kıyasla çok büyük miktarda veri depolayabilirler.

    Manyetik ve sabit sürücüler, modern bilgisayarlarda en yaygın ikincil depolama aygıtlarıdır. bilgisayar sistemleri. Manyetik olarak adlandırılırlar, metal bir tabandan oluşurlar. Bu diskler mil üzerine dikey olarak yerleştirilmiştir. Okuma/yazma kafası aralarında hareket eder ve altındaki böyle bir noktayı mıknatıslamak veya çıkarmak için kullanılır. 0 (sıfır) veya 1 (bir) olarak tanınabilir.

    Sabit sürücüler, verimli veri depolama için iyi tanımlanmış bir sırayla biçimlendirilir. Yol adı verilen birçok eşmerkezli daireye sahiptir. Her iz ayrıca tipik olarak 512 bayt veri depolayan sektörlere bölünmüştür.

    Dosya işlemleri

    İlişkisel bir cebir dili sistemi ve veri tabanı üzerindeki işlemler genel olarak iki kategoriye ayrılabilir:

    • güncelleme;
    • aramak.

    İlk kategori, veri değerlerini ekleyerek, silerek veya güncelleyerek değiştirir. Öte yandan, arama işlemleri bilgileri düzenlemez, ancak isteğe bağlı koşullu filtrelemeden sonra çıkarır. Her iki operasyon türünde de seçim önemli bir rol oynar. Dosya oluşturmaya ve silmeye ek olarak, bunlar üzerinde gerçekleştirilebilecek çeşitli işlemler olabilir:

    1. Açık - iki okuma veya yazma modundan birinde bulunur. İlk durumda, işletim sistemi kimsenin verileri değiştirmesine izin vermez. Başka bir deyişle, veriler sadece okunur. Okuma modunda açılan dosyalar birden çok nesne arasında paylaşılabilir. Yazma modu, verileri değiştirmenizi sağlar. Dosyalar okunabilir ancak paylaşılamaz.
    2. Kapatma açısından en önemli işlemdir. işletim sistemi, tüm kilitleri kaldırdığından (eğer modundaysa Kamu erişim), verileri (değiştirilmişse) ikincil ortama kaydeder ve dosyayla ilişkili tüm arabellekleri ve işleyicileri serbest bırakır.
    3. İndeksleme, sistemin uygulandığı bazı özniteliklere dayalı olarak bir sistemin dosyalarından kayıtları verimli bir şekilde çıkarmak için kullanılan bir bilgi yapısı yöntemidir. Niteliklere göre belirlenir.

    İndeksleme aşağıdaki tipte olabilir:

    1. Birincil, sıralı veri dosyasında tanımlanır. Bilgi dosyası bir anahtar alanda düzenlenmiştir.
    2. İkincil dizin, aday anahtar olan bir alandan oluşturulur ve eşsiz değer her girişte veya yinelenen değerlere sahip bir anahtar değil.
    3. Kümeleme, sıralı veri dosyasında, anahtar olmayan bir alanda tanımlanır.

    Bir veritabanı yönetim sistemi veya DBMS, kullanıcı bilgilerini uygun güvenlik önlemleriyle birlikte maksimum verimlilikle depolamak ve almak için bir teknolojiyi ifade eder. Bu konunun ayrıntılı bir incelemesi, ilişkisel cebirin, ilişkileri argüman olarak alan ve sonuç olarak döndüren bir operatörler dili olduğu sonucuna götürür.

    SQL öğrenmeye başlamak için en iyi yer, ilişkisel veritabanlarının temelleridir. İlişkisel veritabanı nedir, ilişki nedir ve üzerlerinde hangi işlemlerin yapılabileceğini anlatacağım.

    Gitmek …

    SQL nedir?

    SQL (Yapılandırılmış Sorgu Dili)yapılandırılmış dil sorgular, veri oluşturmak, değiştirmek ve işlemek için kullanılan genel amaçlı bir bilgisayar dili ilişkisel veritabanları veri

    İlişkisel veritabanı nedir?

    Bu, ilişkiler biçiminde saklanan birbiriyle ilişkili verilerin bir koleksiyonudur.

    ilişki nedir?

    Bir ilişki bir dizi arabadır

    Tuple nedir?

    Bir kartege belirli bir elemanlar kümesidir ve kümenin her elemanı bir kümeye aittir (elemanın türünü söyleyebiliriz). Basitçe söylemek gerekirse, bir demet aralarında bir ilişki olan öğelerin listesi veya dedikleri gibi bir tutuma sahip olmak. Bir grafik veya bir satırdan oluşan bir tablo kullanarak bir veri grubunu temsil edebilirsiniz.

    Bir grafik kullanarak iki-tuple göstereceğim:

    Grafiğin köşeleri, bazı kümelerinin öğeleridir. bu durum, bu eleman a1 birçoktan A ve eleman b1 birçoktan B. Köşeler arasındaki kenar, bağlantı elemanlar arasında veya elemanın söylendiği gibi a1, b1 ile ilişki içindedir.

    Aynı demeti bir tablo kullanarak göstereceğim:

    Sayı 1 de a1 Ve b1, keyfi olarak seçildi.

    Böylece, temel tuğlaya ulaştık, yani. önce kortej, ne olduğunu anlamak için mantığımızı geri sarmaya başlayalım ilişkisel veritabanı Ve SQL.

    Söylediğim gibi, ilişki bir demet kümesidir ve sınırlı (eğer teoriden saparsak). İlişkiler bir matris, grafik, tablo şeklinde temsil edilebilir.

    İlişkinin bir grafik biçiminde nasıl temsil edileceğini göstereceğim:

    Grafik birkaç demet olduğunu gösteriyor ve hangi demet birinci, hangisi ikinci ve üçüncü önemli değil, bu sadece bir demet demet. Sette "birinci", "ikinci" ve "üçüncü" diye bir kavram yoktur, hepsi bir aradadır ve sıra önemli değildir.

    İlişkinin bir tablo biçiminde nasıl temsil edileceğini göstereceğim:

    Satır dizisi veya demetler masada önemli değil, grafikten onları rastgele sırayla aldım.

    Şuna da dikkat etmek önemlidir sütun dizisi Aynı önemli değil, eğer onları değiştirirsek, o zaman küme teorisi açısından, tutum değişmeyecektir.. Bu, ilişkiyi görselleştirmenin bir yolu olarak tablonun tam olarak olumsuz yanıdır, çünkü farklı bir dizide sütunları ve satırları varsa, tabloları eşit olarak adlandırmak psikolojik olarak zor olacaktır.

    En başta söylendiği gibi, ilişkisel bir veritabanı ilişkiler olarak depolanan ilgili verilerin bir koleksiyonu. İlişkileri tablolar biçiminde temsil edersek, o zaman ilişkisel veritabanı, birbiriyle ilişkili tablolar kümesidir. dışarı çıkıyor SQL, ilişkisel bir veritabanında tablolar oluşturmak, değiştirmek ve yönetmek için kullanılan bir dildir..

    Böylece mantıksal zinciri bulduk: SQL, ilişkisel veritabanı, ilişkiler, tuple .. Şimdi bunlara değineceğiz SQL dili, yani ilişkilerle manipülasyon konusu, anlamak önemlidir ilişkiler üzerinde hangi işlemleri gerçekleştirebiliriz?.

    Yapılarından dolayı tüm işlemleri göstermek mümkün değildir. büyük miktar, Sadece temel olanları vereceğim:

    1. Seçim (diğer işlem isimleri seçim, kısıtlamadır)

    Operasyon "seçim" veya "örnek" gerçekleştirilen bir ilişki üzerinden, anlamı şu ki koşul verildiğinde, demetlerin bir alt kümesi seçilir. İşlemin sonucu orijinal olandan daha az sayıda demet ile farklılık gösteren ilişki. Örnek:

    Bir ilişki olsun, buna "1 numaralı kaynak tablo" diyelim:

    Sonuç "örnekler" 1 numaralı orijinal tablodan, şu şartla A=a3

    SQL dilinde:

    sözdizimi - SELECT * FROM tablo_adı NEREDE sütun_adı=değer

    * Source_table FROM WHERE A=a3 SEÇİN

    2. Projeksiyon

    Operasyon "projeksiyon" gerçekleştirilen bir ilişki üzerinden yeni bir oluşumun oluşmasına neden olur. belirtilen tablo sütunlarıyla ilişki.

    Mesela şöyle bir ilişki var, ona "2 numaralı kaynak tablo" diyelim:

    Bu ilişki üzerinde bir işlem yapalım "projeksiyon" niteliklere göre A Ve İLE, sonuç:

    Sonuç olarak, iki özdeş demetimiz var, durum böyle olamaz, bu yüzden onları azaltacağız (DBMS'de azalmalar otomatik olarak gerçekleşir):

    Projeksiyon sırasında yapabileceğimiz ortaya çıktı demet sayısını azaltmak, Bu olur, hata olarak görülmemelidir..

    SQL dilinde:

    sözdizimi - tablo_adı'ndan sütun_listesi SEÇİN

    bu durum için uygulama - A,C'Yİ SEÇİN source_table_#2'DEN

    3. Doğal bağlantı

    Operasyon " doğal bağlantı" icra edildi iki mantıksal ilgili ilişki üzerinde, bunun sonucunda birinci ve ikinci ilişkilerin sütunları ile birinci ve ikinci ilişkilerin her bir demetinin birleştirilmesi sonucu elde edilen demetlerle yeni bir ilişki oluşturulur. Örnek daha açık olmalı, diyelim ki iki ilişki var, bunlara kaynak tablo No. 3.1 ve kaynak tablo No. 3.2 diyelim:

    Kaynak tablo #3_1

    Kaynak tablosu №3_2

    hadi işlemi yapalım "bağlantılar" birinci ve ikinci ilişki, sonuç:

    Orijinal oranı bölüm “2'den elde ettiğimizi not etmek ilginçtir. Projeksiyon”, ilgili sütunların sırası önemli değil.

    SQL dilinde:

    bu durum için uygulama şu şekildedir: source_table_#3_1.*, source_table#3_2.IN FROM source_table_#3_1, source_table#3_2 WHERE source_table#3_1.A= kaynak tablo#3_2.A

    4. Konsolidasyon

    Operasyon "Birlik" gerçekleştirilen aynı sütun kümesine ve bu sütunlardaki veri türüne sahip iki ilişki üzerinden, işlem sonucu yeni "birinci" ve "ikinci" ilişkinin tüm demetlerini içeren bir ilişki(tekrarlayanlar azaltılır).

    Kaynak tablo #4_1

    Kaynak tablo No. 4_2

    bir operasyon yapalım "dernekler" ilişkiler #4.1 ve ilişkiler #4.2, sonuç:

    SQL dilinde:

    sözdizimi - tablo1'den tablo_sütun_list1'i seçin tablo2'den UNION tablo_sütun_list2'yi seçin

    bu durum için uygulama - A,B'Yİ SEÇİN source_table_#4_1 BİRLİĞİ SEÇİMİNDEN A, B'DEN kaynak_tablo_#4_2

    5. Geçiş

    Operasyon "geçit" devam ediyor, operasyonun sonucu yeni "birinci" ve "ikinci" ilişkilerin aynı demetlerini içeren bir ilişki.

    Örneğin, iki ilişki olduğunu varsayalım:

    Kaynak tablo No. 5_1

    Kaynak tablo No. 5_2

    bir operasyon yapalım "kavşaklar" verilen ilişkilerle, sonuç:

    Onlar. ortaya çıkan ilişki içine, var yinelenen demetler itibaren "Birinci" Ve "ikinci" ilişki.

    SQL dilinde:

    sözdizimi SEÇ one_of_tables.column1, one_of_tables.column2, … tablo1,tablo2'DEN tablo1.sütun1=tablo2.sütun1 VE tablo1.sütun2= tablo2.sütun2 VE …

    bu durum için uygulama -

    source_table_#5_1.A = source_table_#5_2.A VE source_table_#5_1.B = source_table_#5_2.B YERİNDE source_table_#5_1.A, source_table_#5_1.B SEÇİN

    6. Çıkarma (fark)

    Operasyon "çıkarma" gerçekleştirilen aynı sütun kümesine ve bu sütunlardaki veri türüne sahip iki ilişki üzerinden, işlem sonucu yeni "ikinci" ilişkinin demetleri dışında "birinci" ilişkinin demetlerini içeren bir ilişki, bir örnek üzerinde daha açık olması gerektiğini düşünüyorum.

    Örneğin, iki ilişki olduğunu varsayalım:

    Kaynak tablo No. 6_1

    Kaynak tablo No. 6_2

    bir operasyon yapalım "fark", yani 6_1 numaralı orijinal tablodan 6_2 numaralı orijinal tabloyu çıkarırız, sonuç:

    Onlar. ortaya çıkan ilişki, "ikinci" ilişkinin tekrarlanan demetleri olmayan "birinci" ilişkidir.

    SQL dilinde:

    bu durum için uygulama şu şekildedir: source_table_#6_1 FROM WHERE NOT EXISTS (source_table_#6_2.A, source_table_#6_2.B FROM source_table_#6_2) Source_table_#6_1.A, source_table_#6_1.B SEÇİN
    NEREDE source_table_#6_2.A= source_table_#6_1.A VE source_table_#6_2.B= source_table_#6_1.B)

    7. Kartezyen çarpım

    Kartezyen çarpım iki rasgele ilişki üzerinde gerçekleştirilir, işlemin sonucu, "birinci" ve "ikinci" ilişkilerin sütun sayısının toplamına eşit sütun sayısı ve "birinci" ve "ikinci" ilişkilerin satır sayısının çarpımına eşit satır sayısı ile yeni bir ilişkidir. Ortaya çıkan ilişkinin demetleri, basit bir ifadeyle, "birinci" ilişkinin her bir demetinin "ikinci" ilişkinin demetleriyle birleştirilmesiyle elde edilir.

    Örnek, iki rasgele ilişkimiz olsun:

    Kaynak tablo No. 7_1

    Kaynak tablo No. 7_2

    üretelim "Kartezyen ürün" iki ilişki verildiğinde, sonuç:

    SQL dilinde:

    bu durum için uygulama şu şekildedir: source_table_#7_1, source_table_#7_2'DEN source_table_#7_1.A, source_table_#7_1.B, source_table_#7_2.A, source_table_#7_2.B SEÇİN

    İlişkilerle ilgili temel işlemleri ele aldık ve son olarak yazının teorik kısmı olan anahtarın ne olduğunu anlayacağız.

    anahtar nedir?

    anahtar bir veya daha fazla tablo sütunu, bir kaydı (dize) benzersiz şekilde tanımlayan. Örnek, tablo şeklinde sunulan bir ilişki olsun:

    anahtar verilen ilişki A sütunu olabilir. Çünkü yalnızca bu sütunun değerleri ilişkin, Örneğin: a3 bir girişi tanımlar "a3 b1 d3", a2 kaydı tanımla "a2 b2 d3", a1 bir girişi tanımlar "a1 b2 d1". Diğer sütunlar bu fonksiyon dayanamamak.

    anahtar ise bir sütun, sonra denir basit eğer birçok o aradı bileşik. Bu tabloda ayrıca basit anahtar, bir tane daha var - B ve D sütunlarından oluşan bileşik. Bu sütunların değerleri, kaydı (satırları) benzersiz şekilde tanımlar, örneğin: b1 ve d3 kaydı benzersiz bir şekilde tanımlar "a3 b1 d3", b2 ve d3 girişi benzersiz şekilde tanımlar "a2 b2 d3", b2 ve d1 kaydı benzersiz bir şekilde tanımlar "a1 b2 d1".

    Uygulamada, kişi genellikle seçer bir anahtar, ve en basiti, bu durumda bu A sütunu. Bu anahtar da denir birincil anahtar».

    İlginizi çekecek:

    ^

    Ders No. 4. İlişkisel cebir. tekli işlemler

    İlişkisel Cebir, tahmin edebileceğiniz gibi bu, tüm işlemlerin ilişkisel veri modelleri, yani ilişkiler üzerinde gerçekleştirildiği özel bir cebir türüdür.

    Tablo terimleriyle, bir ilişki satırları, sütunları ve bir satırı - sütunların başlığını içerir. Bu nedenle, doğal tekli işlemler, belirli satırları veya sütunları seçmenin yanı sıra sütun başlıklarını değiştirme - nitelikleri yeniden adlandırma işlemleridir.

    ^

    1. Tekli seçim işlemi

    Bakacağımız ilk tekli işlem getirme işlemi- bir ilişkiyi temsil eden bir tablodan satır seçme işlemi, buna göre

    veya ilke, yani satır seçimi

    belirli bir koşulu veya koşulları karşılayan demetler.

    ^ getirme operatörü belirtilen σ <P >, örnekleme koşuluP <S>, yani operatör σ demetlerde her zaman belirli bir koşul tarafından alınır P ve koşulun kendisi P ilişki şemasına bağlı olarak yazılır S. Bütün bunlar göz önünde bulundurularak, getirme işlemi r ilişkisine uygulanan S ilişkisinin şeması üzerinde

    σ <P >R (S) σ <P >R = {T (S) |TR & P <S >T } = {T (S) |TR & IfNull (P <S >T , YANLIŞ };

    Bu işlemin sonucu, aynı ilişki şemasına sahip yeni bir ilişki olacaktır. S, bu demetlerden oluşan T (S) orijinal oranın

    seçim koşulunu sağlayan işlenenler P T. Açıktır ki, uygulamak için

    o zaman tuple koşulu, öznitelik adları yerine tuple özniteliklerinin değerlerini değiştirmek gerekir.

    Bu işlemin nasıl çalıştığını daha iyi anlamak için bir örneğe bakalım. Aşağıdaki bağıntı şeması verilsin:

    ^S: Oturum (kitap numarası, Soyadı, Konusu, Sınıfı).

    Seçim koşulunu aşağıdaki gibi ele alalım:

    P <S> = (Konu = 'Bilgisayar Bilimi' ve Sınıf > 3).

    Orijinal ilişkiden ihtiyacımız var

    işlenen "Bilgisayar Bilimi" konusunu en az üç puanla geçen öğrenciler hakkında bilgi içeren demetleri seçin.

    Bu bağıntıdan şu demet de verilsin:

    T 0 (S) ∈ R (S

    Seçim koşulumuzu bir Tuple'a uygulamak T 0 , şunu elde ederiz:

    P T 0 = ('Veritabanları' = 'Bilişim' ve 5 > 3);

    Bu belirli grup üzerinde, seçim koşulu karşılanmıyor.

    Genel olarak, bu özel örneğin sonucu

    σ <Предмет = "Информатика" and Оценка >3>Seans

    seçim koşulunu sağlayan satırların bırakıldığı bir "Oturum" tablosu olacaktır.

    ^

    2. Tekli projeksiyon işlemi

    İnceleyeceğimiz bir diğer standart tekli işlem, projeksiyon işlemidir. Projeksiyon işlemi ilişkiyi temsil eden bir tablodan sütun seçme işlemidir.

    veya imzalayın. Yani makine, orijinal ilişkinin bu niteliklerini (yani tam anlamıyla bu sütunları) seçer.

    projeksiyonda belirtilen işlenen.

    ^ projeksiyon operatörü [ ile gösterilir S"] veya π . Burada S" orijinal ilişki şemasının bir alt şemasıdır S, yani bazı sütunları. Bu ne anlama gelir? Bu, S'nin S'den daha az özniteliğe sahip olduğu anlamına gelir. S, çünkü içinde S" sadece projeksiyon koşulunun sağlandığı kişiler kalır. Ve ilişkiyi temsil eden tabloda R (S"), tabloda olduğu kadar çok satır R (S) ve yalnızca kalan niteliklere karşılık gelenler kaldığından daha az sütun vardır. Yani projeksiyon operatörü π< S"> ile ilgili olarak R (S) farklı bir ilişki şemasıyla yeni bir ilişkiyle sonuçlanır R (S") projeksiyonlardan oluşan T (S) [S"] orijinal ilişkinin demetleri. Bu demet projeksiyonları nasıl tanımlanır? Projeksiyon herhangi bir demet T (S) orijinal ilişkinin R (S) alt devre başına S" aşağıdaki formülle tanımlanır:

    T (S) [S' ] = {T (A)|Akesin (T) ∩ S ’}, S " ⊆S .

    Yinelenen demetlerin sonuçtan hariç tutulduğuna dikkat etmek önemlidir, yani tabloda yenisini temsil eden yinelenen satırlar olmayacaktır.

    Yukarıdakilerin tümü akılda tutularak, veritabanı yönetim sistemleri açısından bir projeksiyon işlemi şuna benzer:

    π <S" >R (S) ≡ π <S' >RR (S) [S ’] ≡ R [S" ] = {T (S) [S' ] | TR };

    Getirme işleminin nasıl çalıştığını gösteren bir örneğe bakalım.

    "Seans" ilişkisi ve bu ilişkinin şeması verilsin:

    S: Oturum (Ders numarası, Soyadı, Konusu, Sınıfı);

    Bu şemadan sadece iki öznitelikle ilgileneceğiz, yani öğrencinin "Defter numarası" ve "Soyadı", yani alt devre S"şöyle görünecek:

    ^ S": (kayıt defteri numarası, soyadı).

    İlk ilişkiye ihtiyaç var R (S) alt devreye yansıtma S" .

    T 0 (S) ∈ R (S): ((Defter No.: 100), (Soyadı: ‘İvanov’), (Konu: ‘Veritabanları’), (Puan: 5));

    Dolayısıyla, bu demetin verilen alt devreye izdüşümü ^ S"şöyle görünecek:

    T 0 (S) S": ((ders kitabı numarası: 100), (Soyadı: ‘İvanov’));

    Tablolar açısından yansıtma işleminden bahsedersek, o zaman orijinal ilişkinin yansıtma Oturumu [ders kitabı numarası, Soyadı], iki sütun dışında tüm sütunların silindiği Oturum tablosudur: not defteri numarası ve Soyadı. Ayrıca, yinelenen tüm satırlar da kaldırılmıştır.

    ^

    3. Tekli yeniden adlandırma işlemi

    Ve bakacağımız son tekli işlem öznitelik yeniden adlandırma işlemi. İlişkiden tablo olarak bahsedecek olursak sütunların tamamının veya bir kısmının adını değiştirmek için yeniden adlandırma işlemine ihtiyaç duyulur.

    ^ operatörü yeniden adlandır aşağıdaki gibi: ρ<φ >, burada φ – işlevi yeniden adlandır .

    Bu işlev karşılıklı olarak ayarlar

    şema öznitelik adları arasında bire bir yazışma S Ve Ŝ, sırasıyla nerede S- orijinal ilişkinin şeması ve Ŝ yeniden adlandırılmış özniteliklerle ilişki şeması. Yani operatör ρ <φ> ile ilgili olarak R (S) şema ile yeni bir ilişki verir Ŝ Yalnızca yeniden adlandırılan özniteliklerle orijinal ilişkinin demetlerinden oluşan bir A.

    Niteliklerin yeniden adlandırılması işlemini veri tabanı yönetim sistemleri açısından yazalım:

    ρ <φ > R (S) ≡ ρ <φ >R = {ρ <φ > T (S)| TR };

    İşte bu işlemin kullanımına bir örnek:

    Şema ile bize zaten aşina olan Oturum ilişkisini ele alalım:

    S: Oturum (Ders kitap numarası, Soyadı, Konusu, Sınıfı);

    tanıştıralım yeni düzen ilişkiler Ŝ, mevcut olanlar yerine görmek istediğimiz diğer nitelik adlarıyla:

    Ŝ : (No. ZK, Soyadı, Konusu, Puanı);

    Örneğin, bir veritabanı müşterisi, hazır ilişkinizdeki diğer adları görmek istedi. Bu düzeni gerçekleştirmek için tasarlamak gerekir. sonraki işlev yeniden adlandırma:

    φ : (Hesap Defter No., Soyad, Konu, Sınıf) → (ZK No., Soyad, Konu, Puan);

    Aslında, yalnızca iki özelliğin yeniden adlandırılması gerekir, bu nedenle mevcut yeniden adlandırma işlevinin yerine aşağıdaki yeniden adlandırma işlevini yazmak yasaldır:

    φ : (derece kitap numarası, not) (No. ZK, Skor);

    T 0 (S) R (S): ((Ders Defteri No.: 100), (Soyadı: ‘İvanov’), (Konu: ‘Veritabanları’), (Puan: 5));

    Yeniden adlandırma operatörünü bu demete uygulayın:

    ρ<φ>T 0 (S): ((ZK#: 100), (Soyadı: ‘İvanov’), (Konu: ‘Veritabanları’), (Puan: 5));

    Bu, öznitelikleri yeniden adlandırılan ilişkimizin demetlerinden biridir.

    Tablo olarak, oran

    ρ < № зачетной книжки, Оценка «Hayır. ZK, Puan > Oturum -

    Bu, belirtilen öznitelikleri yeniden adlandırarak Oturum ilişkisi tablosundan elde edilen yeni bir tablodur.

    ^

    4. Birli işlemlerin özellikleri

    Birli işlemler, diğerleri gibi belirli özelliklere sahiptir. Bunlardan en önemlilerini ele alalım.

    Seçim, izdüşüm ve yeniden adlandırmanın birli işlemlerinin ilk özelliği, ilişkilerin kardinalitelerinin oranını karakterize eden özelliktir. (Önemliliğin bir veya başka bir ilişkideki demet sayısı olduğunu hatırlayın.) Burada sırasıyla ilk ilişkiyi ve şu veya bu işlemi uygulayarak elde edilen ilişkiyi ele aldığımız açıktır.

    Birli işlemlerin tüm özelliklerinin doğrudan tanımlarından kaynaklandığını unutmayın, böylece kolayca açıklanabilir ve hatta istenirse bağımsız olarak çıkarılabilirler.

    1) güç oranı:

    a) seçim işlemi için: | σ <P >R |≤ |R |;

    b) yansıtma işlemi için: | R [S" ] | ≤ |R |;

    c) yeniden adlandırma işlemi için: | ρ <φ >R | = |R |;

    Toplamda, seçim operatörü ve izdüşüm operatörü olmak üzere iki operatör için, başlangıç ​​ilişkilerinin önem derecesinin - işlenenlerin kardinalitesinden elde edilen ilişkilerin kardinalliğinden daha büyük olduğunu görüyoruz. ilk uygulama ilgili işlemler. Bunun nedeni, bu iki seçme ve projelendirme işlemine eşlik eden seçimin, seçim koşullarını karşılamayan bazı satırları veya sütunları hariç tutmasıdır. Tüm satırların veya sütunların koşulları karşılaması durumunda, güçte (yani demet sayısında) bir azalma olmaz, bu nedenle formüllerdeki eşitsizlik kesin değildir.

    Yeniden adlandırma işlemi durumunda, adlar değiştirilirken hiçbir demet ilişkiden dışlanmadığından ilişkinin gücü değişmez;

    2) idempotent özellik:

    a) getirme işlemi için: σ <P > σ <P >R = σ <P >;

    b) yansıtma işlemi için: R [S' ] [S' ] = R [S" ];

    c) Yeniden adlandırma işlemi için, genel durumda, bağımsız olma özelliği geçerli değildir.

    Bu özellik, aynı operatörün art arda iki kez uygulanması anlamına gelir.

    veya ilişki, tek uygulamasına eşdeğerdir.

    İlişki özniteliklerini yeniden adlandırma işlemi için, genel olarak konuşursak, bu özellik uygulanabilir, ancak özel çekinceler ve koşullarla.

    Bir ifadenin biçimini basitleştirmek ve onu daha ekonomik, gerçek bir biçime getirmek için çok sık olarak güçsüzlük özelliği kullanılır.

    VE son özellik ele alacağımız, monotonluğun özelliğidir. Her koşulda üç operatörün de monoton olduğunu not etmek ilginçtir;

    3) monotonluk özelliği:

    a) getirme işlemi için: R 1 R 2 ⇒ σ <P > R 1 σ <P >R 2 ;

    b) yansıtma işlemi için: R 1 R 2 R 1 [S" ] R 2 [S" ];

    c) yeniden adlandırma işlemi için: R 1 R 2 ρ <φ >R 1 ⊆ ρ <φ >R 2 ;

    İlişkisel cebirdeki monotonluk kavramı, sıradan, genel cebirdeki aynı kavrama benzer. Açıklayalım: eğer başlangıçta ilişki R 1 ve R 2 tanesi birbirine öyle bir bağlandı ki RR 2 , üç seçim, yansıtma veya yeniden adlandırma işlecinden herhangi birini uyguladıktan sonra bile bu ilişki korunur.

    Sahip kaydı ile üye kaydı arasındaki ilişki de 1:N'dir.

    Bu modeller arasındaki temel fark ağ modelinde bir giriş birden fazla grup ilişkisinin üyesi olabilir. Bu modele göre, her grup ilişkisi isimlendirilir ve türü ile örneği arasında bir ayrım yapılır. Bir grup ilişkisinin türü, adıyla verilir ve tüm örneklerde ortak olan özellikleri tanımlar. bu türden. Bir grup ilişkisi örneği, bir sahip kaydı ve bir dizi (muhtemelen boş) bağımlı kayıtlarla temsil edilir. Aşağıdaki sınırlamaya sahiptir: kayıt örneği aynı türden iki grup ilişkisi örneğinin üyesi olamaz (örneğin, paragraf..1'deki örnekteki bir çalışan, iki departmanda çalışamaz).

    • ağaçlar (a) ve (b) şek. 4.2, ÇALIŞAN girişinin iki grup ilişkisine dahil edildiği tek bir ağ yapısı ile değiştirilir;
    • M:N tipini görüntülemek için, hiçbir alanı olmayan ve sadece CONTRACT ve EMPLOYEE kayıtlarını birbirine bağlamaya yarayan EMPLOYEE_CONTRACT kaydı girilir (bkz. Şekil 4.3). Bu girişin ayrıca saklayabileceğini unutmayın. yardımcı bilgi, örneğin, bu çalışanın bu sözleşme kapsamındaki toplam ücret içindeki payı.


    Pirinç. 4.3.

    Bir grup ilişkisinin her örneği, aşağıdaki özelliklerle karakterize edilir:

    Alt kayıtları sıralamanın yolu:

    • keyfi,
    • kronolojik /kuyruk/,
    • ters kronolojik /yığın/,
    • çeşitli.

    Bir kayıt birden fazla grup ilişkisinde bağımlı ilan edilirse, her birine kendi sıralama yöntemi atanabilir.

    Alt Kayıt Dahil Etme Modu:

    • otomatik - hemen belirli bir sahibine atanmadan veritabanına bir kayıt girmek imkansızdır;
    • manual - bir bağımlı kaydı veritabanında depolamanıza ve bunu bir grup ilişkisi örneğine hemen dahil etmemenize olanak tanır. Bu işlem daha sonra kullanıcı tarafından başlatılır.

    İstisna modu.

    Grup ilişkilerinde alt kayıtların üyeliklerinin üç sınıfını ayırt etmek gelenekseldir:

    • Sabit. Alt kayıt, sahip kaydına katı bir şekilde bağlıdır ve yalnızca silinerek grup ilişkisinden çıkarılabilir. Bir sahip kaydı silindiğinde, tüm alt kayıtlar da otomatik olarak silinir. Yukarıdaki örnekte, sabit üyelik "SÖZLEŞME" ve "MÜŞTERİ" kayıtları arasında "SONUÇLANIR" grup ilişkisini ifade eder çünkü sözleşme müşteri olmadan var olamaz.
    • Zorunlu. Bir tali kaydın başka bir malike geçmesi caizdir, ancak maliksiz var olması mümkün değildir. Bir sahip kaydını silmek için, zorunlu üyeliğe sahip alt kayıtları olmamalıdır. "ÇALIŞAN" ve "BÖLÜM" kayıtları bu ilişki ile ilgilidir. Bir departman tasfiye edilirse, tüm çalışanları ya başka departmanlara transfer edilmeli ya da işten çıkarılmalıdır.
    • İsteğe bağlı. Bir kaydı bir grup ilişkisinden hariç tutabilir, ancak başka bir sahibe iliştirmeden veritabanında tutabilirsiniz. Bir sahip kaydı silindiğinde, alt kayıtları - isteğe bağlı üyeler veritabanına kaydedilir ve artık bu türden bir grup ilişkisine katılmazlar. Böyle bir grup ilişkisine bir örnek, "PERSONEL" ile "SÖZLEŞME" arasındaki "GERÇEKLEŞTİRME"dir, çünkü kuruluşta faaliyetleri müşterilere karşı herhangi bir sözleşmeden doğan yükümlülüğün yerine getirilmesiyle ilgili olmayan çalışanlar olabilir.

    Ağ veritabanı modelindeki veriler üzerindeki işlemler

    Eklemek - veritabanına bir giriş yapın ve dahil etme moduna bağlı olarak, onu bir bağımlı olarak ilan edildiği bir grup ilişkisine dahil edin veya herhangi bir grup ilişkisine dahil etmeyin.
    Grup İlişkisine Dahil Et - mevcut bir alt kaydı bir sahip kaydıyla ilişkilendirin.
    Değiştir - mevcut bir bağımlı kaydı, aynı grup ilişkisindeki başka bir sahip kaydına bağlama.
    Yenile - daha önce alınan kaydın öğelerinin değerini değiştirin.
    Çıkarmak - kayıtları sırayla anahtar değerine göre ve grup ilişkilerini kullanarak çıkarın - sahipten üye kayıtlarına ve alt kayıttan kümenin sahibine gidebilirsiniz.
    Silmek - kaydı veritabanından kaldırın. Bu giriş, grup ilişkisinin sahibiyse, alt girdilerin üyelik sınıfı ayrıştırılır. Zorunlu üyeler daha önce grup ilişkisinden çıkarılmalıdır, sabit üyeler sahibi ile birlikte silinir, isteğe bağlı olanlar veritabanında kalır.
    Grup ilişkisinden hariç tut - sahip kaydı ile üye kaydı arasındaki ilişkiyi kırın.

    Bütünlük Kısıtlamaları

    De olduğu gibi hiyerarşik model yalnızca bilgi bütünlüğünün korunması sağlanır (ilişkinin sahibi, ilişkinin üyesidir).

    Erken DBMS'nin avantajları ve dezavantajları

    Erken DBMS'nin avantajları:

    • gelişmiş veri yönetimi araçları harici bellek düşük seviyede;
    • etkili uygulama sistemlerini manuel olarak oluşturma yeteneği;
    • alt nesneleri ayırarak hafıza tasarrufu imkanı (ağ sistemlerinde)

    Erken DBMS'nin dezavantajları:

    • kullanım karmaşıklığı;
    • veritabanının fiziksel organizasyonu hakkında bilgi için yüksek düzeyde gereksinimler;
    • uygulamalı sistemlerin veri tabanının fiziksel organizasyonuna bağımlılığı;
    • uygulamalı sistemlerin mantığının, veritabanına erişimi düzenleme ayrıntılarıyla aşırı yüklenmesi.

    Hem hiyerarşik hem de ağ modeli veri yüksek nitelikli programcıların varlığını gerektirir. Ve bu gibi durumlarda bile, kullanıcı isteklerinin uygulanması genellikle uzun vadeli.

    nesne yönelimli DBMS

    Nesne yönelimli DBMS'nin ortaya çıkışı, sığmayan nesneleri depolamak için bir araca ihtiyaç duyan OO dillerindeki programcıların ihtiyaçlarından kaynaklanmıştır. rasgele erişim belleği bilgisayar. Uygulama programının tekrarlanan başlatmaları arasında nesnelerin durumunu kaydetme görevi de önemliydi. Bu nedenle, çoğu OODBMS, veri yönetimi prosedürlerinin uygulama programına dahil edildiği bir kütüphanedir. OODBMS uygulama örnekleri olarak adanmış sunucu veritabanları oldukça nadirdir.

    Genel olarak kabul edilen " tanımının hemen not edilmesi gerekir. nesne yönelimli veri modeli" yok. Artık yalnızca verilerin mantıksal temsiline belirli bir "nesne" yaklaşımından ve onu uygulamanın çeşitli nesne yönelimli yollarından bahsedebiliriz.

    Herhangi bir veri modelinin üç yönü içermesi gerektiğini biliyoruz: yapısal, bütünsel ve manipülatif. Nesne yönelimli olarak nasıl uygulandıklarını görelim. programlama paradigmaları.

    Yapı

    Yapı nesne modeliüç temel kavram kullanılarak açıklanmıştır:

    kapsülleme - her nesnenin bir iç durumu vardır (içinde bir veri kaydı depolar) ve ayrıca bir dizi yöntem - nesnenin iç durumunu belirleyen verilere erişebileceğiniz (ve yalnızca bu şekilde) prosedürler veya bunları değiştirin. Böylece nesneler, dış dünyadan ayrılmış bağımsız varlıklar olarak düşünülebilir;
    miras - atalarının yapısını ve yöntemlerini miras alan nesne sınıflarından yeni nesne sınıfları yaratma ve onlara kendi bireyselliklerini yansıtan özellikler ekleme yeteneğini ifade eder. Kalıtım basit (bir ata) veya çoklu (birden fazla ata) olabilir;
    polimorfizm - farklı nesneler, yöntemlerinin nasıl uygulandığına bağlı olarak aynı dış olaylara farklı tepkiler verebilir.

    Veri bütünlüğü

    Bütünlüğü korumak için, nesne yönelimli yaklaşım aşağıdaki araçların kullanılmasını önerir:

    • kalıtım ilişkilerinin otomatik olarak sürdürülmesi, bazı veri alanlarını ve nesne yöntemlerini diğer nesneler tarafından görülemeyen "gizli" olarak bildirme yeteneği; bu tür alanlar ve yöntemler yalnızca nesnenin kendi yöntemleri tarafından kullanılır nesne içinde bütünlük kontrol prosedürlerinin oluşturulması

    Veri Manipülasyon Araçları

    Ne yazık ki, nesne yönelimli programlama, ilişkisel cebir veya ilişkisel hesap gibi yaygın veri işleme araçlarından yoksundur. Verilerle çalışmak, nesne yönelimli programlama dillerinden biri kullanılarak gerçekleştirilir. genel amaçlı, genellikle SmallTalk, C++ veya Java.

    Şimdi bazılarını özetleyelim

    Nesne yönelimli veritabanları, ilişkisel veritabanlarından farklı olarak kayıtları değil, nesneleri depolar. OO yaklaşımı, gerçek dünyayı temsil etmek için verilerin doğal bir temsili olan ilişkisel modelden daha iyi bir yol sağlar. İlişkisel modelde, tüm ilişkilerin aynı düzeye ait olması varlık-ilişki modelinin hiyerarşik ilişkilerinin ilişkisel modele dönüşümünü zorlaştırır. OO modeli, farklı soyutlama düzeylerinde katmanlar halinde düşünülebilir. Bunlarla yeni veri türleri ve işlemler tanımlamak mümkündür.

    Aynı zamanda, o.o. Modelin ayrıca bir takım dezavantajları vardır.:

    • veritabanından nesneleri çıkarmak için prosedürel olmayan güçlü araçlar yoktur. Tüm sorgular prosedürel dillerde yazılmalıdır, optimizasyon sorunu programcıya aittir;
    • tamamen bildirimsel yerine bütünlük kısıtlamaları(kullanarak ilişkisel tabloların birincil ve yabancı anahtarlarını açıkça bildirmek gibi) anahtar kelimeler BİRİNCİL ANAHTAR Ve REFERANSLAR) veya yarı bildirimli tetikleyiciler, dahili bütünlüğü sağlamak için prosedürel kod yazmanız gerekir.

    Açıkçası, bu eksikliklerin her ikisi de gelişmiş veri işleme araçlarının olmamasıyla ilişkilidir. Bu sorun iki şekilde çözülür - OO dillerini veri yönetimine doğru genişleterek (ODMG standardı) veya ilişkisel DBMS'lere (SQL-3 ve ayrıca nesne-ilişkisel DBMS'ler) nesne özellikleri ekleyerek.