Veritabanı tasarımının aşamaları. Program Çıkışı - Programdan çıkın. Veritabanı sınıflandırması

  • 14.06.2019

Veritabanı tasarımı üzerine bir dizi 15 makalenin çevirisi.
Bilgiler yeni başlayanlar için tasarlanmıştır.
Bana yardımcı oldu. Belki bir başkasının boşlukları doldurmasına yardımcı olur.

Veritabanı Tasarım Kılavuzu.

1. Giriş.
Kendi veritabanlarınızı oluşturacaksanız, veri tabanı tasarım kurallarına bağlı kalmak iyi bir fikirdir, çünkü bu, verilerinizin uzun vadeli bütünlüğünü ve bakımını kolaylaştıracaktır. Bu kılavuz size veritabanlarının ne olduğunu ve ilişkisel veri tabanı tasarım kurallarına uyan bir veri tabanının nasıl tasarlanacağını anlatacaktır.

Veritabanları, büyük miktarda ilgili bilgiyi depolamanıza ve almanıza izin veren programlardır. Veritabanları oluşur tablolar, Içeren bilgi. Bir veritabanı oluşturduğunuzda, ne hakkında düşünmeniz gerekir? tablolar yaratmanız gerekiyor ve ne bağlantılar tablolardaki bilgiler arasında bulunur. Başka bir deyişle, düşünmeniz gerekir proje veritabanınız. iyi proje veritabanı, daha önce de belirtildiği gibi, veri bütünlüğünü ve bakım kolaylığını sağlayacaktır.
İçinde bilgi depolamak ve gerektiğinde bu bilgileri almak için bir veritabanı oluşturulur. Bu, yerleştirebilmemiz gerektiği anlamına gelir, ( SOKMAK) veritabanına bilgi ve veritabanından bilgi alabilmek istiyoruz ( SEÇME).
Veritabanı sorgulama dili bu amaç için icat edildi ve çağrıldı. Yapılandırılmış sorgu dili veya SQL. Veri ekleme (INSERT) ve seçim (SEÇ) işlemleri bu dilin parçalarıdır. Aşağıda bir veri getirme sorgusu örneği ve sonucu verilmiştir.

SQL büyük bir hikaye ve bu eğitimin kapsamı dışında. Bu makale kesinlikle sunuma odaklanmıştır. veritabanı tasarım süreci. Daha sonra ayrı bir eğitimde SQL'in temellerini ele alacağım.

ilişkisel model.
Bu derste size ilişkisel bir veri modelinin nasıl oluşturulacağını göstereceğim. İlişkisel model, tablolardaki verilerin nasıl düzenleneceğini ve bu tablolar arasındaki ilişkilerin nasıl tanımlanacağını açıklayan bir modeldir.

İlişkisel modelin kuralları, bilgilerin tablolarda nasıl düzenlenmesi gerektiğini ve tabloların birbirleriyle nasıl ilişkili olduğunu belirler. Sonuç olarak, sonuç, bir veritabanı diyagramı veya daha spesifik olarak, şekildeki gibi bir varlık-ilişki diyagramı şeklinde sağlanabilir (Örnek MySQL Workbench'ten alınmıştır).

Örnekler
Kılavuzda örnek olarak bir takım uygulamalar kullandım.

RDBMS.

Örnek tabloları oluşturmak için kullandığım RDBMS MySQL'dir. MySQL en popüler RDBMS'dir ve ücretsizdir.

Veritabanı yönetim aracı.

MySQL'i kurduktan sonra, yalnızca MySQL ile etkileşim kurmak için bir komut satırı arayüzü elde edersiniz. Şahsen, veritabanlarımı yönetmek için bir GUI'yi tercih ederim. SQLyog'u çok kullanırım. Bu, grafiksel bir arayüze sahip ücretsiz bir yardımcı programdır. Bu kılavuzdaki tablo resimleri oradan alınmıştır.

Görsel modelleme.

Harika bir ücretsiz MySQL Workbench uygulaması var. Veritabanınızı grafiksel olarak tasarlamanızı sağlar. Kılavuzdaki diyagramların çizimleri bu programda yapılmıştır.

RDBMS'den bağımsız tasarım.
Bu öğreticinin MySQL için örnekler sağlamasına rağmen, veritabanı tasarımının RDBMS'den bağımsız olduğunu bilmek önemlidir. Bu, bilgilerin yalnızca MySQL için değil, genel olarak ilişkisel veritabanları için geçerli olduğu anlamına gelir. Bu eğitimdeki bilgileri Mysql, Postgresql, Microsoft Access, Microsoft Sql veya Oracle gibi herhangi bir ilişkisel veritabanına uygulayabilirsiniz.

Bir sonraki bölümde, veritabanlarının evriminden kısaca bahsedeceğim. Veritabanlarının ve ilişkisel veri modelinin nereden geldiğini öğreneceksiniz.

2. Tarih.
70'lerde ve 80'lerde, bilgisayar bilimcileri hala kahverengi smokinler ve büyük, kare çerçeveli gözlükler takarken, veriler (genellikle) virgül veya sekmelerle ayrılmış bir metin belgesi olan dosyalarda yapısız bir şekilde depolandı.

70'lerde bilgi teknolojisi profesyonelleri böyle görünüyordu. (Sol altta Bill Gates var).

Metin dosyaları bugün hala küçük miktarlardaki basit bilgileri depolamak için kullanılmaktadır. Virgülle Ayrılmış Değerler (CSV) - virgülle ayrılmış değerler çok popülerdir ve günümüzde çeşitli yazılım ve işletim sistemleri tarafından yaygın olarak desteklenmektedir. Microsoft Excel, CSV dosyalarıyla çalışabilen bir program örneğidir. Böyle bir dosyada saklanan veriler bir bilgisayar programı tarafından okunabilir.

Yukarıdaki, böyle bir dosyanın nasıl görünebileceğinin bir örneğidir. Bu dosyayı okuyan programa, verilerin virgülle ayrılmış olduğu bildirilmelidir. Program dersin bulunduğu kategoriyi seçip görüntülemek isterse "Veritabanı Tasarımı Eğitimi", o zaman kelimeler bulunana kadar satır satır okumalıdır. "Veritabanı Tasarımı Eğitimi" ve ardından kategorinin çıktısını almak için virgülden sonraki kelimeyi okuması gerekecek. Yazılım.

Veritabanı tabloları.
Bir dosyayı satır satır okumak çok verimli değildir. İlişkisel bir veritabanında veriler tablolarda saklanır. Aşağıdaki tablo, dosyayla aynı verileri içerir. Her satır veya “giriş” bir ders içerir. Her sütun, dersin bazı özelliklerini içerir. Bu durumda, bu başlık (başlık) ve kategorisidir (kategori).

Bir bilgisayar programı, ilgili başlığı ve kategoriyi hızlı bir şekilde bulmak için belirli bir tutorial_id için tablonun tutorial_id sütununu arayabilir. Bu, bir programın metin dosyasında yapacağı gibi, bir dosyada satır satır arama yapmaktan çok daha hızlıdır.

Modern ilişkisel veritabanları, verilerin belirli satırlardan, sütunlardan ve birden çok tablodan aynı anda ve çok hızlı bir şekilde alınmasına izin verecek şekilde tasarlanmıştır.

İlişkisel modelin tarihi.
İlişkisel veritabanı modeli, 70'lerde İngiliz bilim adamı Ted Codd tarafından icat edildi. Ağ veritabanı modelinin ve hiyerarşik modelin eksikliklerinin üstesinden gelmek istedi. Ve bunda çok başarılıydı. İlişkisel veritabanı modeli artık evrensel olarak kabul edilmektedir ve verileri verimli bir şekilde düzenlemek için güçlü bir model olarak kabul edilmektedir.

Bugün, küçük masaüstü uygulamalarından yüksek düzeyde optimize edilmiş arama yöntemlerine sahip zengin sunucu sistemlerine kadar çok çeşitli veritabanı yönetim sistemleri mevcuttur. İşte daha iyi bilinen ilişkisel veritabanı yönetim sistemlerinden (RDBMS) bazıları:

- kehanet– öncelikle profesyonel, büyük uygulamalar için kullanılır.
- Microsoft SQL sunucusu- Microsoft RDBMS. Yalnızca Windows işletim sistemi için kullanılabilir.
- MySQLçok popüler bir açık kaynak RDBMS'dir. Hem profesyoneller hem de yeni başlayanlar tarafından yaygın olarak kullanılır. Başka ne gerekiyor?! Bedava.
- IBM- bir dizi RDBMS'ye sahiptir, en ünlüsü DB2'dir.
- Microsoft Erişimi– Ofiste ve evde kullanılan RDBMS. Aslında, sadece bir veritabanından daha fazlasıdır. MS Access, bir kullanıcı arabirimi ile veritabanları oluşturmanıza olanak tanır.
Bir sonraki bölümde ilişkisel veritabanlarının bazı özelliklerinden bahsedeceğim.

3. İlişkisel veritabanlarının özellikleri.
İlişkisel veritabanları, büyük miktarda bilgiyi hızlı bir şekilde depolamak ve almak için tasarlanmıştır. Aşağıda, ilişkisel veritabanlarının ve ilişkisel veri modelinin bazı özellikleri verilmiştir.
Anahtarların kullanımı.
Bir tablodaki her veri satırı, birincil anahtar adı verilen benzersiz bir "anahtar" ile tanımlanır. Çoğu zaman, birincil anahtar otomatik artan (otomatik artan) bir sayıdır (1,2,3,4, vb.). Farklı tablolardaki veriler, anahtarlar kullanılarak birbirine bağlanabilir. Bir tablonun birincil anahtar değerleri, başka bir tablonun satırlarına (kayıtlarına) eklenerek bu kayıtları birbirine bağlayabilir.

Yapılandırılmış Sorgu Dili (SQL) kullanılarak, bir anahtarla bağlanan farklı tablolardan veriler tek seferde seçilebilir. Örneğin, users tablosundan (users) id (id) 3 (Mike) olan kullanıcıya ait siparişler tablosundan (siparişler) tüm siparişleri seçecek bir sorgu oluşturabilirsiniz. İlerleyen bölümlerde anahtarlar hakkında daha fazla konuşacağız.


Bu tablodaki id sütunu birincil anahtardır. Her girişin, genellikle bir sayı olmak üzere benzersiz bir birincil anahtarı vardır. Kullanıcı grubu sütunu bir yabancı anahtardır. Adına bakılırsa, görünüşe göre kullanıcı gruplarını içeren bir tabloya atıfta bulunuyor.

Veri fazlalığı yok.
İlişkisel veri modelinin kurallarını izleyen bir veritabanı tasarımında, kullanıcı adı gibi her bilgi parçası yalnızca tek bir yerde saklanır. Bu, birden çok konumdaki verilerle çalışma ihtiyacını ortadan kaldırır. Veri tekrarına veri fazlalığı denir ve iyi bir veritabanı tasarımında bundan kaçınılmalıdır.
Giriş kısıtlaması.
İlişkisel bir veritabanı kullanarak, bir sütunda ne tür verilerin depolanmasına izin verildiğini belirleyebilirsiniz. Tam sayılar, ondalık sayılar, küçük metin parçacıkları, büyük metin parçacıkları, tarihler vb. içeren bir alan oluşturabilirsiniz.


Bir veritabanı tablosu oluşturduğunuzda, her sütun için bir veri türü sağlarsınız. Örneğin, varchar, maksimum 255 karakterden oluşan küçük metin parçaları için bir veri türüyken, int sayılardır.

Veri türlerine ek olarak, RDBMS, girilebilecek verileri daha da kısıtlamanıza olanak tanır. Örneğin, bu sütundaki kayıtların değerinin uzunluğunu sınırlayın veya benzersizliğini zorlayın. Son kısıtlama, genellikle kullanıcı oturum açma bilgilerini (oturum açma) veya e-posta adreslerini içeren alanlar için kullanılır.

Bu kısıtlamalar, verilerinizin bütünlüğü üzerinde kontrol sahibi olmanızı sağlar ve aşağıdaki gibi durumları önler:

Bir numara görmeyi beklediğiniz alana bir adres (metin) girme
- bu indeksin uzunluğu ile bölgenin indeksini yüz karakterle girmek
- aynı ada sahip kullanıcılar oluşturmak
- aynı e-posta adresine sahip kullanıcılar oluşturmak
- doğum günü (tarih) alanına ağırlık (sayı) girişi

Veri bütünlüğünün korunması.
Alan özelliklerini özelleştirerek, tabloları birbirine bağlayarak ve kısıtlamalar ayarlayarak verilerinizin güvenilirliğini artırabilirsiniz.
Hakların atanması.
Çoğu RDBMS, belirli kullanıcılara belirli haklar atamanıza izin veren bir izin ayarı sunar. Kullanıcıya izin verilebilecek veya reddedilebilecek bazı eylemler: SELECT (seçim), INSERT (ekleme), DELETE (silme), ALTER (değiştir), CREATE (oluşturma), vb. Bunlar Structured Query Language (SQL) kullanılarak gerçekleştirilebilen işlemlerdir.
Yapılandırılmış Sorgu Dili (SQL).
Yapılandırılmış Sorgu Dili (SQL), veri depolama, veri alma, veri değiştirme gibi bir veritabanı üzerinde belirli işlemleri gerçekleştirmek için kullanılır. SQL'in anlaşılması nispeten kolaydır ve buna izin verir. ve SQL JOIN deyimini kullanarak birden çok tablodan ilgili verileri getirme gibi iç içe seçimler. Daha önce belirtildiği gibi, SQL bu eğitimde tartışılmayacaktır. Veritabanı tasarımına odaklanacağım.

Veritabanınızı nasıl tasarladığınız, veritabanından veri almak için yürütmeniz gereken sorgular üzerinde doğrudan bir etkiye sahip olacaktır. Bu, üssünüzün ne olması gerektiğini düşünmenizin başka bir nedenidir. İyi tasarlanmış bir veritabanı ile sorgularınız daha temiz ve daha kolay olabilir.

taşınabilirlik
İlişkisel veri modeli standarttır. İlişkisel veri modelinin kurallarını takip ederek, verilerinizin başka bir RDBMS'ye nispeten kolaylıkla aktarılabileceğinden emin olabilirsiniz.

Daha önce de belirtildiği gibi, veritabanı tasarımı, verileri tanımlama, bunları birbirine bağlama ve bu sorunu çözmenin sonuçlarını kağıda (veya bir bilgisayar programına) koyma meselesidir. Oluşturmak için kullanmayı düşündüğünüz RDBMS'den bağımsız bir veritabanı tasarlama.

Bir sonraki bölümde, birincil anahtarlara daha yakından bakacağız.

Zaman zaman Toster.ru'ya bakıyorum ve hatta bazen oradaki soruları cevaplıyorum. İnsanların sorduğu en yaygın iki soru, nasıl programcı olunacağı ve bir veritabanı şemasının nasıl düzgün şekilde tasarlanacağıdır. Bu kadar çok insanın ikinci soruyu sormasını kişisel olarak çok garip buluyorum. Nedense bana her zaman bu herkesin yapabileceği çok basit bir şeymiş gibi geldi. Ancak bu kadar çok kişinin ilgisini çektiği için burada oldukça detaylı ve aynı zamanda kısa bir cevap vermeye çalışacağım.

SQL bildiğinizi varsayıyorum. Yani tabloların, satırların, dizinlerin, birincil anahtarların ve referans bütünlüğünün ne olduğunu açıklamaya gerek yoktur. Durum böyle değilse, korkarım sizi ilgili literatüre yönlendirmek zorundayım. Neyse ki, şimdi birçoğu var.

Bir grafik çizin

Müzik sanatçıları, albümler ve şarkılar hakkında bilgi depolayan bir veritabanı şeması tasarlamak istediğinizi varsayalım. İlk aşamada, hala hiçbir şeyimiz olmadığında, gelecekteki devrenin bir diyagramını çizerek başlamak uygundur. Bir kağıda kalemle eskiz ile başlayabilir, hemen özel bir editör alabilirsiniz. Şimdi birçoğu var, hepsi oldukça benzer bir şekilde düzenlenmiştir. Bu notu hazırlarken DbSchema kullandım. Bu ücretli bir program, ama bana öyle geliyor ki paraya değer. Ayrıca normal şirketlerde genellikle iş için gerekli olan yazılımın maliyetini öderler. DbSchema için deneme süresi, eğer varsa, iki haftadır.

Aşağıdaki diyagramı çizmem yaklaşık on dakikamı aldı:

Daha önce bu tür çizelgelerle hiç çalışmadıysanız endişelenmeyin, burada her şey basit. Dikdörtgenler tablolardır, dikdörtgenlerdeki satırlar sütun adlarıdır, oklar yabancı anahtarlardır ve anahtarlar birincil anahtarlardır. Dilerseniz dizinleri, sütun türlerini ve bunları doldurma zorunluluğunu (null/null değil) bile görebilirsiniz ama bizim için artık bu o kadar da önemli değil.

SQL üretip DBMS'ye besliyoruz

Bu diyagramın SQL'de bir veritabanı şeması oluşturmak için kodla kolayca eşlendiğini görmek kolaydır. DbSchema'da Schema → Generate Schema and Data Script diyerek SQL üretebilirsiniz. Ardından ortaya çıkan komut dosyası, kullandığınız DBMS'ye beslenebilir:

kedi müzik.sql | psql -hlocalhost test_database test_user

PostgreSQL kullandım. Bu DBMS'nin nasıl kurulacağına ilişkin bilgiler bu notta bulunabilir.

Peki devreyi tasarlarken rehberim neydi?

normal formlar

Bir veri tabanındaki fazlalığı ortadan kaldırma ve tutarsızlıkları ortadan kaldırma işlemine ne ad verilir? normalleştirme. Sözde normal formlar vardır ve pratikte nadiren kimse ilk üçten fazlasını hatırlar.

Kabaca söylemek gerekirse, tablodaki herhangi bir satır ve herhangi bir sütunun kesişiminde tam olarak bir değer varsa, bir tablo ilk normal formda (1NF) olur. Modern RDBMS'de bu koşul her zaman karşılanır. VTYS, kümeleri veya dizileri desteklese bile, bir satır ve bir sütunun kesişiminde tam olarak bir küme veya dizi değeri depolanır. Ama masada (kullanıcı varchar(100), telefon tamsayı) alex - 1234, 5678 dizesi olamaz. 1NF-alex-1234 ve alex-5678'de sadece iki terim olabilir.

İkinci normal form (2NF), tablonun birinci normal formda olduğu ve her bir anahtar olmayan özniteliğin olduğu anlamına gelir. indirgenemez şekilde birincil anahtarın değerine bağlıdır. İndirgenemezlik şu anlama gelir. Birincil anahtar tek bir öznitelikten oluşuyorsa, buna herhangi bir işlevsel bağımlılık indirgenemez. Birincil anahtar bileşik ise, o zaman tabloda değeri, birincil anahtarın özniteliklerinin bir alt kümesinin değeri tarafından benzersiz bir şekilde belirlenen bir öznitelik olamaz.

Bir tablo, 2NF'deyse üçüncü normal formdadır ve anahtar olmayan hiçbir öznitelik, birincil anahtara geçişli olarak işlevsel olarak bağımlı değildir. Örneğin, tabloyu düşünün (çalışan varchar(100) birincil anahtarı, departman varchar(100), departman_telefon tamsayı). Açıkçası, 2NF'de. Ancak departman telefon numarası çalışanın adına göre geçişli işlevsel bağımlıdır, çünkü çalışan departmanı benzersiz olarak belirtir ve departman benzersiz olarak departmanın telefon numarasını belirtir. Bir masayı 3NF'ye getirmek için onu iki masaya bölmeniz gerekir - çalışan - departman ve departmnet - telefon .

Normalleştirmenin veritabanı fazlalığını azalttığını ve rastgele hataların girişini engellediğini görmek kolaydır. Örneğin 2NF'deki son örnekteki tablodan çıkarsanız yanlışlıkla aynı departmana farklı telefonlar atayabilirsiniz. Veya beş departmanı ve 1.000 çalışanı olan bir şirket düşünün. Departmanın telefon numarası değiştiyse, 2NF durumunda veri tabanında güncellemek için 1000 satır ve 3NF durumunda sadece beş satır taramanız gerekecektir.

GİRİİŞ

1.2 Veritabanı

1.3 Veritabanı sistem mimarisi

1.4 Veri modeli

1.5 İlişkisel model

2. SORUN AÇIKLAMASI

3. İLİŞKİSEL VERİTABANLARININ TEORİK TEMELLERİ

3.1 İlişkisel cebir

3.1.1 İlişkisel işlemlerin genel yorumu

3.1.2 İlişkisel cebir kapatma ve yeniden adlandırma işlemi

3.1.3 İlişkisel cebirin küme teorik işlemlerinin özellikleri

3.2 İlişkisel hesap

3.2.1 Tuple değişkenleri ve iyi biçimlendirilmiş formüller

3.2.2 Hedef listeleri ve ilişkisel analiz ifadeleri

3.2.3 Etki alanlarının ilişkisel hesabı

3.3 Veri bütünlüğü

3.4 Veritabanı tasarımı

4. VERİTABANININ GELİŞTİRİLMESİ

4.1 Veritabanı konu alanı

4.2 Bilgisel bir model oluşturmak

4.3 Veritabanı tasarımı

5. İSTEMCİ UYGULAMASINI GELİŞTİRME

5.1 Programlama ortamı seçimi için gerekçe

5.2 Delphi veritabanı araçları

5.3 Uygulama Uygulaması

5.3.1 Formların ve modüllerin genel açıklaması

5.3.2 MainForm ve Ana modül

5.3.3 DataModule1 ve DBUnit

5.3.4 Form Düzenleme ve Düzenleme modülü

5.3.5 Form Sil ve Sil modülü

5.3.6 Form Bul ve Bul modülü

5.3.7 FilterForm ve Filtre modülü

5.3.8 DirSourceForm formu ve DirSource modülü

5.3.9 PathForm ve Path modülü

5.3.10 Kullanıcı Formu ve Kullanıcı modülü

5.3.11 AboutBox formu ve About modülü

5.3.12 Dosyalar modülü

6. EKONOMİK BÖLÜM

6.1 Veritabanı konu alanı ve gelişimi

6.2 Araştırma çalışması için bir ağ çizelgesinin geliştirilmesi

6.3 Ar-Ge için maliyet tahmininin hesaplanması

7. GÜVENLİK

7.1 İş güvenliği ile ilgili genel konular

7.2 Endüstriyel sanitasyon

7.3 Güvenlik

7.4 Operasyonel önlemler

7.5 Yangın güvenliği

7.6 Çevre koruma

8. SİVİL SAVUNMA

BAĞLANTI LİSTESİ

UYGULAMALAR


GİRİİŞ

Üretim faaliyetlerinde, ekonomik yönetimde ve siyasette sağlam ve etkili kararlar almak için modern bir uzman, bilgisayar ve iletişim kullanarak verileri alabilmeli, biriktirebilmeli, depolayabilmeli ve işleyebilmeli, sonucu görsel belgeler şeklinde sunabilmelidir. Modern toplumda, bilgi teknolojileri çok hızlı gelişiyor, insan faaliyetinin tüm alanlarına giriyorlar.

Bu tezin amacı, bir kurumsal sunucunun sabit diskinde dosyalar ve dosya paketleri (çeşitli türlerde metin belgeleri, HTML köprü metni, yürütülebilir dosya) biçiminde bulunan elektronik literatür kaynaklarına erişmek için bir uzak veritabanı ve bir istemci uygulaması geliştirmektir. dosyalar vb.). Şu anda görevin uygulanmasında kullanılan istemci-sunucu mimarisi en ilerici olanıdır. Görevi iki alt göreve ayırmayı mümkün kılar: fiziksel olarak sunucuda bulunan ve DBMS tarafından yönetilen uzak veritabanının kendisinin geliştirilmesi ve bu veritabanına SQL sorguları kullanarak erişen ve ağ kullanıcılarının iş istasyonlarında bulunan bir uygulama. Bu uygulama ile yük, sunucu ve iş istasyonları arasında da dağıtılır, bu da programın hızını artırmanıza olanak tanır.

Veritabanını yönetmek için Borland'ın InterBase 6.0 DBMS'si seçildi. Uygulamanın istemci kısmını geliştirmek için Borland Dalphi 7.0 Eneterprise Edition programlama ortamı kullanıldı, bu tür uygulamaları hızlı ve görsel olarak oluşturmak için uygun araçlar sağlar.

Tez çalışması sırasında geliştirilen veritabanı, kullanıcının gerekli literatür kaynaklarına arama ve erişim hızını artırmanıza, bunları düzene koymanıza ve sistematize etmenize olanak tanır. Bu da, gerekli bilgileri aramak için çok fazla zaman harcamak zorunda olmayan kullanıcının üretkenliğini etkileyebilir.


1. LİTERATÜR KAYNAKLARININ ANALİTİK İNCELENMESİ

1.1 Veritabanı sistemlerinin temel kavramları

Bir veritabanı sistemi, bilgisayarlı bir kayıt tutma sistemidir, yani. asıl amacı bilgi depolamak olan, kullanıcılara bu bilgileri alma ve değiştirme araçları sağlayan bilgisayarlı bir sistem.

Geleneksel muhasebe yöntemine kıyasla bir veritabanı sisteminin avantajları:

1) kompaktlık;

2) hız;

3) düşük işçilik maliyetleri;

4) alaka düzeyi;

5) merkezi veri yönetimi;

6) veri bağımsızlığı.

Bir veritabanı sistemi dört ana bileşen içerir: veri, donanım, yazılım (özellikle bir veritabanı yönetim sistemi veya VTYS) ve kullanıcılar.

Veritabanı sistemleri tek kullanıcılı ve çok kullanıcılıdır. Tek kullanıcılı bir sistem, aynı anda birden fazla kullanıcının veritabanına erişemediği bir sistemdir ve çok kullanıcılı bir sistem, birkaç kullanıcının aynı anda veritabanına erişebildiği bir sistemdir.

Genel olarak, bir veritabanındaki veriler hem bütünleştirilir hem de paylaşılır. Veri entegrasyonu kavramı, bir veritabanını, bilgi depolama fazlalığını tamamen veya kısmen hariç tutarak, birkaç ayrı veri dosyasının bir kombinasyonu olarak temsil etme yeteneği anlamına gelir. Veri ayrılabilirliği kavramı, birkaç farklı kullanıcı tarafından veri tabanında depolanan bireysel öğelerin kullanılması olasılığını ifade eder.

Sistem donanımı şunları içerir:

1) Bilgi depolamak için kullanılan ikincil (harici) bellek birimlerinin yanı sıra ilgili G / Ç cihazları, cihaz kontrolörleri, G / Ç kanalları vb.

2) Ana (birincil) bellekle birlikte, veri tabanı sistemi yazılımının çalışmasını desteklemek üzere tasarlanmış donanım işlemcisi (veya işlemciler).

Fiziksel veritabanının kendisi ile sistem kullanıcıları arasında, farklı şekilde çağrılabilen bir yazılım katmanı bulunur: bir veritabanı yöneticisi, bir veritabanı sunucusu veya bir veritabanı yönetim sistemi (DBMS). Veritabanına erişim için tüm kullanıcı istekleri DBMS tarafından işlenir. Dosya (veya tablo) eklemek, bu dosyaları veya tabloları seçmek ve güncellemek için mevcut tüm olanaklar da VTYS tarafından sağlanır. Bir VTYS'nin ana görevi, veritabanı kullanıcısına donanım düzeyinde ayrıntılara girmeden onunla çalışma yeteneği sağlamaktır.

Kullanıcılar üç büyük ve kısmen örtüşen gruba ayrılabilir. İlk grup, veritabanını kullanan uygulama programları yazmaktan sorumlu olan uygulama programcılarıdır. Uygulama programcıları, VTYS'ye uygun bir sorgu göndererek veritabanına erişim sağlar. İkinci grup, bir iş istasyonu veya terminaller aracılığıyla doğrudan veritabanı sistemiyle çalışan son kullanıcılardır. Son kullanıcı, etkileşimli uygulamalardan birini veya VTYS'nin yazılımına entegre edilmiş bir arabirimi kullanarak veritabanına erişebilir. Üçüncü grup, veritabanı yöneticileridir (DBA). Veri yöneticisi tarafından belirlenen gereksinimlere uygun olarak veri tabanını ve tüm veri tabanı sistemini yönetmekten sorumludurlar.


Tablo "Hesap" Tablosu "Ürün" Tablosu "Faturaya göre kalem" Tablo "Ürün grupları" Laboratuvar çalışması No. 2. Veri seçimi ve hesaplama sorgularının geliştirilmesi Çalışmanın amacı, QBE dilinde veritabanı sorgularını tanımlama becerisi kazandırmaktır ( Örnekle Sorgulama). Ödenmemiş fatura örneği Yürütme sonucu: Teslimat örneği Yürütme sonucu: Ara...

Proje 1. Giriş. Bu ders projesinin amacı, veri yapılandırması ve kullanıcı arayüzü geliştirmesidir. Kurs projesinde aşağıdaki teorik konular ve pratik görevler dikkate alındı: ü seçilen otomasyon nesnesinin sistem kapsamlı bir analizi yapıldı ü otomatik sistemin kullanıcı arayüzünün yapısı geliştirildi ...

Ders

Veri tabanı tasarımı.

Veritabanı sistemlerinin çok düzeyli mimarisinin modelleri. Tasarım otomasyon araçları

1. Veritabanı sistemlerinin çok seviyeli mimarisinin modelleri

Veritabanı sistemlerinin tasarımı ve geliştirilmesi alanında, çeşitli modelleme araçları kullanılmaktadır ve belirli bir sistem çerçevesinde bile, farklı amaçlar için bütün bir model kompleksine ihtiyaç duyulmaktadır.

1975'te yayınlanan ANSI/X3/SPARC raporu, yalnızca katmanlı bir veritabanı sistemleri mimarisi kavramlarının yaygın olarak kabul edildiğini değil, aynı zamanda özel bir kavramsal veritabanının tüm uygulamalarında ortak ve onlardan bağımsız sunum katmanı. Bu düzeye ek olarak, iki düzey daha öngörülmüştür: depolanan veritabanının görünümü için destek sağlaması gereken bir iç düzey ve uygulamaların "bakış açısından" veritabanının görünümlerini destekleyen bir dış düzey. Her mimari düzeyde, bir veya başka bir veri modeli kullanması gerekiyordu. Ek olarak, harici (uygulama, kullanıcı) düzeyinde bu tür birkaç model olabilir. Modeller ve bunlara dayalı olarak belirtilen şemalar sırasıyla dışsal, kavramsal ve içsel olarak adlandırılır.

Açıkçası, tasarımın nihai amacı, bir dereceye kadar tasarımcının konu alanı fikrini ve oluşturulan veritabanını kullanan kullanıcılar tarafından çözülen görevleri içeren belirli bir veritabanı oluşturmaktır. Veritabanı olarak düşünüldüğünde modelin somut uygulaması, esas olarak ilkelerin belirlenmesi aşamasını (hangi temele dayandırılır) ayırarak sürecin sırasını oluşturuyoruz. zorunlu be) belirli bir DBMS ortamında, işletim sisteminde ve programlama dillerinde bir veritabanını uygularken bu ilkelerin uygulanması aşamasından itibaren. Ve uygulamanın gösterdiği gibi, veritabanı uygulamaları ile yapı ilkeleri arasında her zaman tutarsızlıklar vardır. Farklılıklar çeşitli nedenlerin sonucudur, ancak çoğu zaman, belirli bir çözüm lehine, örneğin bir veri modeli veya temel (gömülü) işleme algoritmaları tarafından dayatılan bazı temel kısıtlamaların açık veya örtülü olarak reddedilmesidir. tasarımcının görüşü, örneğin verileri anlamak veya işlemek için daha verimli olacaktır.

Soyut düzeyde tasarımın fiziksel uygulamadan ayrılmasının önemi, ilkeleri beyan ettiğimizde, yapıcı bir şekilde kapsamı sınırlayın. İlk olarak, sorunun boyutu ve karmaşıklığı olmalıdır belirli koşullar altında - çevrenin kaynakları, tasarımcının profesyonelliği, kullanıcının hazırlığı, vb. - uygulamanın mümkün olacağı bir düzeye indirgenmiştir. İkincisi, bir veritabanı, tanımı gereği, çok işlevli kullanmak çeşitli kullanıcılar ve aynı zamanda - istekleri yerine getirmek, öngörülemeyen tasarım yaparken, bu tür açık bir ilke beyanı, kullanıcıyı yanıltmamaya ve tasarım sırasında dikkate alınanlardan temel farklılıkları nedeniyle, veri işlemenin verimsiz olmasına neden olacak sorunların çözümüne yönelik uygulamalar oluşturmamasına izin verecektir. Üçüncüsü, tasarım, iki ana konunun bakış açılarının bir tür uyumlaştırma sürecidir: kullanıcı ve veritabanı tasarımcısı. Kullanıcı, yüksek derecede genellik ve sunum genişliği gereksinimleri ile karakterize edilir (ayrıntılı açıklamaların hantallığı değil), önemli zaman veya entelektüel kaynaklar harcamadan yeterli bilgiyi elde etmesine izin verir. Bir veritabanı sistemini tasarlayan ve optimize eden bir yönetici için, teknik çözümlerin geçerliliğini ve ayrıca tasarım otomasyonu olasılığını sağlamak için yüksek derecede ayrıntı ve biçimselleştirme gerekir.

7.2. Modellerin tipolojisi

Herhangi bir bilgi temsili yöntemi arasındaki temel farklar, konu alanının semantiğinin sabitlenme şeklidir. Ancak, tüm seviyeler ve konu alanını temsil eden herhangi bir yöntem için özellikle not edilmelidir (ama bizim için önemli olan şudur: makine veritabanları oluşturma ve kullanma bağlamında) gösterimin temeli (yani, temsilin gerçek oluşumu) kodlama kavramlar ve kavramlar arası ilişkiler.Çok seviyeli bir bilgi temsil modeli sistemi gösterilmektedir slaytlar 2, 3, 4 (Modellerin tipolojisi) .

Herhangi bir bilgi sisteminin geliştirilmesindeki kilit aşama, sistem analizinin uygulanmasıdır: konu alanının resmileştirilmesi ve sistemin bir dizi bileşen olarak sunulması. Sistem analizi, bir yandan “ne yapılması gerektiğini” ve “kimin yapılması gerektiğini” (analist, geliştirici, yönetici, kullanıcı) daha iyi anlamayı ve diğer yandan dikkate alınan modeldeki değişiklikleri izlemeyi sağlar. zamanla ve projeyi güncelleyin.

Sistem analizinin temeli olarak ayrıştırma, işlevsel (fonksiyon hiyerarşileri oluşturma) veya nesne olabilir.

Ancak, veritabanları gibi çoğu sistemde veri türleri, nasıl işlendiklerinden daha statiktir. Bu nedenle, veri dizisi diyagramları (Veri Akış Şeması) gibi sistem analizi yöntemleri yoğun bir şekilde geliştirilmiştir. İlişkisel veritabanlarının geliştirilmesi, sırayla, veri modelleri oluşturmak için yöntemlerin geliştirilmesini teşvik etti ve özellikle, ER diyagramları (Varlık İlişki Şeması ). Ancak hem işlevsel ayrıştırma hem de veri diyagramları, çalışılan konu alanının yalnızca bir kısmını verir, ancak bir bütün olarak sistem hakkında bir fikir edinilmesine izin vermez.

Öğeleri ve ilişkileri tanımlama yolunu yansıtan, ancak en önemlisi, bir bilgisayarın tek boyutlu bellek alanında gelecekteki temsilleri bağlamında veri mantıksal modeller oluşturma aşamasında kullanılan görüntüleme yöntemleri de farklıdır. Modeller, yarı yapılandırılmış bilgileri yansıtmanın en yaygın yolunu temsil eden iyi yapılandırılmış bilgilerin sunumuna odaklanan factografik ve belgesel olarak alt bölümlere ayrılmıştır. İlk durumda ilişkisel, hiyerarşik veya ağ veri modelleri hakkında konuşurlarsa, ikinci durumda - anlamsal ağlar ve belgesel modeller hakkında. Bununla birlikte, bu model grubunda olgusal ve belgesel olarak bölünme oldukça keyfidir. Bir alan dizisi olarak bir belge, diğer şeylerin yanı sıra ilişkisel bir modelle temsil edilebilir. Ve bu durumda, özel bir çözümün seçimi çoğunlukla genel verimlilik gereksinimi tarafından belirlenir.

Bilgi sistemlerini tasarlarken, nesnelerin özellikleri (özellikleri) niteliklere göre belirlenir. Hem konu alanındaki farklı nesneleri (nesne türlerini) hem de aynı türdeki nesneler arasındaki farklı örneklerini ayırt etmeyi mümkün kılan öznitelik değerleridir. Niteliklerin temsili en uygun şekilde küme-teorik ilişkilerle modellenir. Bir ilişki, her satırın ilişkinin bir demeti olduğu ve her sütunun (etki alanı) bir dizi öznitelik değerini temsil ettiği bir tablo olarak görsel olarak temsil edilir. İlişki öznitelik adlarının listesi, ilişki şemasını oluşturur ve veritabanını temsil etmek için kullanılan ilişki şemaları kümesi de veritabanı şemasını oluşturur.

Veritabanı şemalarını ilişki şemaları basitleştirirken temsil etmek veritabanı tasarım süreci. Bu, yaratılışı açıklar. veri tabanı tasarımının röle açısından gerçekleştirildiği sistemler rasyonel veri modeli ve veritabanı ile çalışma DBMS tarafından desteklenirBu kılavuzda açıklanan türlerden biri.

Veri modeli, öyle ya da böyle, verileri tanımlamak ve verileri işlemek için bir temel sağlamanın yanı sıra veri yapılarını analiz etmek ve sentezlemek için araçlar sağlamalıdır. için herhangi bir model matematik açısından az çok düzgün bir şekilde inşa edilmiş, kendisi araştırma için nesneler yaratır ve yaşamaya başlar. pratiğe paralel olacaktır.

İlişkisel model verilirnyh gösterimin temeli olarak doğrudan ilişki kavramını kullanır. Nesne ortamının sözde kavramsal modeline en yakın olanıdır ve genellikle ikincisinin temelini oluşturur.

Graf-teorik modellerin aksine, ilişkisel modelde, ilişkiler arasındaki bağlantılar örtük olarak uygulanır ve bunun için kullanılırlar. ilişki anahtarları. Örneğin, hiyerarşik türde bir ilişki, bu ilişkiyi ana ilişkiyle bağlayan bir alt ilişkide bir dizi özelliğin bulunması gerektiğinde, birincil / yabancı anahtarlar mekanizması tarafından gerçekleştirilir. Böyle bir öznitelik kümesi, ana ilişkide birincil anahtar ve alt ilişkide ikincil anahtar olarak adlandırılacaktır.

Öncelikle veri yazma ve nesne yönelimli dillerin ortaya çıkması ile ilişkili olan programlama dillerinin geliştirilmesindeki ilerleme, karmaşık sistemlerin analizine hiyerarşik temsiller - kapsülleme, kalıtım ve nesne sınıfları açısından yaklaşmayı mümkün kılmıştır. şemaları yalnızca verileri ve bunların ilişkilerini değil, aynı zamanda veri işleme yöntemlerini de gösteren polimorfizm özellikleri.

Bu anlamda nesne yönelimli yaklaşım hibrit bir yöntemdir ve sistemin bir bütün olarak daha doğal bir şekilde biçimlendirilmesini sağlar. Sonuç olarak, bu, analistler ve geliştiriciler (tasarımcılar ve programcılar) arasındaki mevcut engeli azaltmaya, sistem güvenilirliğini artırmaya ve bakımı, özellikle diğer sistemlerle entegrasyonu basitleştirmeye olanak tanır.

7.3. Tasarım aşamaları ve modelleme nesneleri

Veritabanı tasarımı, düzenli, resmileştirilmiş bir oluşturma sürecidir. birbirine bağlı açıklama sistemleri,şunlar. veritabanında depolanan verileri bu veriler tarafından açıklanan etki alanı nesneleri ile bağlayan (düzelten) bu tür etki alanı modelleri. Bu tür açıklamaların uygulamadaki amacı, veri tabanındaki verilerin organizasyonu (verinin fiziksel olarak bellekteki konumu ve arama mekanizmaları) hakkında neredeyse hiçbir fikri olmayan kullanıcının, veri tabanına bir talepte bulunarak, konu alanındaki nesnenin durumu hakkında yeterli bilgi elde etmek için pratik bir fırsat. (Slayt 5 - Aşamalar ve nesneler)

Tasarım, konu alanının analizi ve tasarlanan sistem için fonksiyonel ve diğer gereksinimlerin belirlenmesi ile başlar. Bu süreç aşağıda daha ayrıntılı olarak tartışılacaktır, ancak burada tasarımın genellikle bir kişi (bir grup insan) - bir sistem analisti (ve pratikte daha sık olarak bir veritabanı yöneticisi) tarafından gerçekleştirildiğini not ediyoruz. veya makine veri işlemeye oldukça aşina olan gelecekteki bir veritabanı kullanıcısı.

Kullanıcı anketleri sonucunda elde edilen veri tabanının içeriği hakkında bireysel fikirleri ve pratik problemleri çözmek için gerekli olabilecek veriler hakkındaki fikirlerini birleştirerek, sistem analisti ilk önce oluşturulan veri tabanının genelleştirilmiş gayri resmi bir tanımını oluşturur. Veritabanı tasarımı üzerinde çalışan herkesin anlayabileceği doğal dil, matematiksel ifadeler, tablolar, grafikler ve diğer araçlar kullanılarak yapılan bu açıklamaya ne ad verilir? bilgi modeli.

Böyle bir insan odaklı model, hem insan hem de bilgisayar belleği olabilen veri depolama ortamının fiziksel parametrelerinden neredeyse tamamen bağımsızdır. Bu nedenle, infolojik model, gerçek dünyada (konu alanıyla ilgili olan kısmında) bazı değişiklikler, bu modelin konuyu yeterince yansıtmaya devam etmesi için açıklamanın karşılık gelen parçasının modelinde değişiklikler gerektirene kadar değişmez. alan.

Kalan modeller makine odaklıdır. DBMS, onların yardımıyla, programların ve kullanıcıların, bu verilerin fiziksel konumu hakkında endişelenmeden, yalnızca adlarıyla depolanan verilere erişmesine izin verir.

Verilere belirli bir VTYS kullanılarak erişildiğinden, modeller bu VTYS'nin veri tanımlama dilinde temsil edilmelidir. İnfolojik veri modeline göre oluşturulan böyle bir açıklamaya denir. verisel model veri.

DBMS, harici depolama aygıtlarındaki verileri bulmak ve aramak için şunları kullanır: fiziksel model veri.

Sunulan üç seviyeli mimari (infolojik, veri mantıksal ve fiziksel seviyeler), saklanan verilerin onları kullanan programlardan bağımsızlığını sağlamayı mümkün kılar. Saklanan veriler başka bir ortama yeniden yazılabilir veya yeni uygulamalar için alanlar eklenmesi dahil olmak üzere fiziksel yapıları yeniden düzenlenebilir, ancak bu yalnızca fiziksel ve muhtemelen veri mantıksal veri modelinde bir değişiklik gerektirecektir. Ana şey, fiziksel ve verisel modellerdeki bu tür değişikliklerin sistem kullanıcıları tarafından fark edilmeyecek olmasıdır (onlar için "şeffaf" olacaktır). Ayrıca veri bağımsızlığı, mevcut sorunları yok etmeden yeni sorunları çözmek için yeni uygulamalar oluşturma yeteneği sağlar.

alıntı alıntı ( slayt 6) kitap 20 yıldan fazla bir süre önce yayınlanmış olmasına rağmen hala geçerli. Gerçekten de tasarım araçları sürekli gelişiyor, ancak kullanıcının veritabanı sistemlerini kullanarak otomatikleştirmeyi amaçladığı görevler çok daha karmaşık hale geldi ve resmileştirme ve otomasyon araçlarının etkin kullanımı için model sistemin doğasını anlamak gerekiyor.

Modelleme nesneleri açısından, etki alanı modelleri ile veritabanı modelleri arasında ayrım yapmak gerekir. Bu modeller birbirine bağlıdır, çünkü bunlar aynı orijinalin görüntüleridir - gerçek dünyanın belirli bir nesne kümesi, tasarlanmakta olan veritabanını kullanarak depolamak ve işlemek istediğimiz bilgiler. Bir veri tabanı sistemi tasarlama sürecinde karşılıklı ilişkilerin doğası (ve buna bağlı olarak farklılıklar) da kendini gösterir. Etki alanı modeli daha çok semantik modellemenin gayri resmi seviyesi ile ilişkilidir ve veritabanı modeli sistemin resmileştirilmiş seviyesi (ve özellikle DBMS) ile ilişkilidir.

Modellerin çeşitliliği aynı zamanda kullanılan modelleme paradigmalarındaki farklılıkla da ilişkilidir; temsil düzeyde nesnelerin ilişkileri veri yapıları. Bu açıdan ilişkisel, ağ, hiyerarşik, nesne, nesne-ilişkisel, belgesel ve diğer modeller vardır. Buna göre, araçlarıyla açıklanan veritabanı şemaları da farklıdır.

7.4. Veritabanı Tasarım Yaklaşımları

Veritabanı tasarımına iki ana yaklaşım vardır: Azalan ve artan (slayt 7)

saat artan yaklaşım, iş en baştan başlaralt düzeydeki nitelikler (yani varlıkların ve ilişkilerin özellikleri),aralarında var olan bağlantıların analizi ilişkiler halinde gruplandırılır,varlık türlerini ve aralarındaki ilişkileri tanımlar. Daha sonra ayrıntılı olarak tartışılacaktırartan bir türevi olan ilişkilerin normalleşme süreciveritabanlarını tasarlarken ortak yaklaşım. Normalleştirme sağlar norm yaratmak seçilenler arasındaki işlevsel bağımlılıklara dayalı olarak parçalanmış ilişkilerÖznitellikler.

Aşağıdan yukarıya yaklaşım tasarım için en uygun olanıdır.Nispeten az özniteliğe sahip basit veritabanları. Bununla birlikte, aralarında her şeyin bulunduğu çok sayıda özniteliğe sahip veritabanları tasarlarken bu yaklaşımın kullanımı çok daha karmaşık hale gelir.mevcut işlevsel bağımlılıklar zordur. ÇünküKarmaşık veritabanları için kavramsal ve mantıksal veri modelleri yüzlerce ila binlerce öznitelik içerebilir, bu nedenle bir yaklaşım seçmek önemlidir.tasarım aşamasını basitleştirmeye yardımcı olacaktır. Ayrıca, erken aşamalarda veri gereksinimlerini formüle etmek zor olabilirama yükle tüm nitelikler Veri modeline dahil edilecekler.

Karmaşık veritabanlarını tasarlamak için daha uygun bir strateji,kullanım Azalan ObA'nın kavramsal modelinin geliştirilmesinin önceliğini önceden belirleyen bir yaklaşım. Bu model, belirli bir ObD'nin görevlerinin özelliklerini yansıtan tüm nesneler, bunların nitelikleri ve aralarındaki ilişkiler tanımlanana kadar rafine edilen (ayrıntılı ve genişletilmiş) birkaç üst düzey varlık ve ilişki içerir.

Aşağıdan yukarıya yaklaşım, örneğin, karmaşık ObD durumunda, tasarımcının kendisi için çok uygunsuz bir süreçtir. Üstelik burada görünen ilişkisel modelin sınırlamaları, özellikle: (slayt 8)

- ilişkisel model, verilerin anlamını yakalamak için yeterli araçları sağlamaz, yani. konu alanının semantiği ilişkilerde doğrudan sabit değildir;

- birçok uygulama için konu alanını düz tablolara dayalı olarak modellemek zordur;

- tüm tasarım süreci bağımlılık muhasebesi temelinde gerçekleşse de, ilişkisel model bu bağımlılıkları temsil etme (anlambilimi yansıtma) araçlarına sahip değildir;

- Tasarım süreci, uygulama için konu alanının (“varlıklar”) bazı temel nesnelerinin seçilmesi ve bu varlıklar arasındaki ilişkilerin tanımlanması ile başlasa da, ilişkisel veri modeli varlıklar ve varlıklar arasında ayrım yapmak için herhangi bir aparat sunmaz. ilişkiler.

Bu tasarım yaklaşımlarına ek olarak,"genelden özele" veya "karma" gibi diğer yaklaşımlartasarım stratejisi. Bir yaklaşım " Genelden özele» niho'ya benziyoryaklaşımdır, ancak ondan farklıdır, çünkü bir dizi temel ilke ilk olarak tanımlanır.Göz önünde bulundurulan varlık yelpazesinin daha sonra genişletilmesine sahip kuruluşlar, Başlangıçta tanımlanmış olanla etkileşime giren ilişkiler ve niteliklervarlıklar. AT karma stratejiönce artan ve azalan kullanılırModelin farklı parçalarını oluşturmak için yürüme yaklaşımları, ardından tümparçalar tek bir bütün halinde birleştirilir.

Biraz ileri giderek, bilgibilimsel düzeyi modellemek için iyi bilinen iki yöntem arasındaki ilişkiyi not ediyoruz - acil -Genellikle alternatif olarak algılanan diyagramlar ve normalleştirme yöntemi. Aslında, iyi biçimlendirilmiş yöntemler kullanılarak normalleştirme, yüksek boyutlu orijinal ilişkilerin (değişkenlerin) mümkün olan en büyük, ancak daha düşük boyutlu ilişkiler kümesine ayrıştırılmasını sağlar. Bu yöntemler konu alanının özelliklerine bağlı değildir, ancak sonuç olarak, işlenen verilerin ilk ilişkisini ve buna bağlı olarak semantiğini belirlemeye izin vermezler. Bunun için daha uygun gibi teknikleri kullan acil -diyagramlar - yukarıdan aşağıya tasarım teknolojisi yaklaşımlarıyla karakterize edilirler ve “bir bütün olarak” bir fikir verirler, ancak bu yüzden (karşılaştırmalı basitlik nedeniyle) tam teşekküllü bir temel tasarıma izin vermezler. normalleştirme yöntemi olduğunu söyleyebiliriz ve acil -diyagramlar esasen tamamlayıcıdır.

7.5. Konu alanının bilgisel modelleri (sistem analizi)

Veritabanlarının kendileri göreceli değerdedir. Veritabanları her zaman en önemlisidir, ancak yalnızca biri bazı bilgi sistemlerinin bileşenleri. Ve örneğin, bir işletmenin operasyonel yönetimi veya belgelerin arşivlenmesi ve alınması için amaçlanan herhangi bir IS'nin yalnızca programlar, veriler ve iletişim değil, aynı zamanda insanlar (müşteriler, kullanıcılar, analistler, geliştiriciler), organizasyonel olduğu belirtilmelidir. yapılar ve ayrıca hedefler, teşebbüs veya bireylerin çalışmaları için teşvikler. Ve tüm bu bileşenler hem tasarımcı hem de kullanıcı tarafından anlaşılabilir olmalı ve ayrıca tutarlı bir şekilde tek bir sisteme bağlanmalıdır.

Bu tür bir koordinasyon sürecinin ana fikri, konu alanının en önemli özelliklerinin analiziyle, en önemli maddi yönleri dikkate alarak başlaması gerektiğidir. Ve bunu "zihinsel olarak" ve "kelimelerle" değil, konu alanındaki nesnelerin açık tanımları (modelleri) üzerinde gerçekleştirmek, tüm temel ilişkileri görmenizi sağlar. Ancak, bu aşamada biçimsel modellerin (yapısal, nesne veya başka herhangi bir) olağan gösterimlerini kullanma girişimlerinin, konu alanının olduğundan daha düşük (daha ayrıntılı ve aynı zamanda sınırlı) bir temsil düzeyine yol açtığı belirtilmelidir. genel bir anlayış için gereklidir.

Genel durumda, konu alanının kompozisyonunu ve yapısını belirlemek için iki yaklaşım vardır. (Slayt 9 İşlevsel - nesne yaklaşımları)

fonksiyonelyaklaşım, tasarımın görevlerin ve buna bağlı olarak bilgi ihtiyaçlarının uygulanmasını sağlayan işlevlerin bir analizi ile başladığını varsayar.

saat nesne(konu) yaklaşımında, kullanıcıların bilgi ihtiyaçları (görevler) katı bir şekilde sabitlenmez ve asıl dikkat, kullanıcının uygulamalı görevlerinde kullanılabilecek bilgiler olan temel nesneleri - nesneleri ve ilişkileri tanımlamaya odaklanır.

Böyle bir bölünmenin koşulluluğu oldukça açıktır, bu nedenle uygulamada, sistem geliştikçe hem nesnelerin bileşimini hem de uygulanan görevlerin kapsamını genişleten uzlaşma seçenekleri kullanılır.

Tasarım aşaması olarak konu alanının sistem analizinin amacı, bir konu alanı seçin nasıl nesneler ve ilişkileri sistemi, tanımlarken birbiriyle ilişkili bir veri sistemi şeklinde sonraki sunumları için işlevsel ve bilgisel gereksinimler.

Sistem analizi aşamasının ana sonucu, belirlenmesidir. paradigmalar bilgi (infolojik) modeli: Sistemi temsil etme araçlarının gereksinimleri, yapılandırılmış bilgi seviyesinin analizine ve kullanıcı tarafından anlambiliminin algısının doğasına (tam / yaklaşık, açık / belirsiz) dayanarak belirlenir.

Örneğin, seçim niteleyici sunum şekli Konu alanının nesneleri sırasıyla paradigma seçimine yol açacaktır. olgusal veritabanları, a sözlü- seçim ihtiyacı belgesel veritabanları. Aşağıdaki sunumda, süreç ve tasarım araçlarını yalnızca ilişkisel modeli kullanan olgusal veritabanları için ele alacağız.

Sonuç - veritabanının kavramsal şeması (anlamsal model açısından) daha sonra ilişkisel bir şemaya dönüştürülür.

7.6. Veri mantıksal modeller

Bir veritabanı sistemi tasarlamanın bir sonraki aşamasının görevi, uygun bir VTYS seçmek ve konu alanının bilgibilimsel modelinin özelliklerini ortamına (veri yapıları) eşlemektir. Başka bir deyişle, geliştirilmekte olan sistemin etki alanı modeli, seçilen belirli VTYS'nin kavramsal seviye veri modeli açısından temsil edilmelidir. Bu aşamaya veritabanının mantıksal (veya veri mantıksal) tasarımı denir ve sonucu, türlerin, özelliklerin ve adların tanımı dahil olmak üzere tüm bilgi öğelerinin (birimlerinin) ve ilişkilerin tanımını içeren kavramsal bir veritabanı şemasıdır.

Veri mantıksal tasarımı, fiziksel kayıtlarla değil, veritabanının yapısıyla ilişkili mantıksal kavramlarla çalışmasına rağmen, yine de, veri sunumunun özellikleri, verilerin toplanması ve işlenmesi için kurallar ve diller belirleyici bir etkiye sahiptir. Çoktan çoğa ilişkiler gibi tüm ilişki türleri doğrudan bir mantıksal modele eşlenemez.

Ek olarak, etki alanı bilgi modeli modelini veritabanı veri mantıksal modeliyle eşleştirmek için birçok seçenek olabilir. Burada, veritabanı geliştirme uygulamasıyla ilgili aşağıdaki iki önemli faktörün etkisi dikkate alınmalıdır.

İlk olarak, etki alanı bağlantıları iki şekilde görüntülenebilir, hem bildirimsel - mantıksal bir şemada hem de prosedürel - ilgili depolanan verileri işleyen (bağlayan) program modülleri aracılığıyla bağlantılar.

İkinci olarak, bilgi işlemenin doğası önemli bir faktör olabilir. Örneğin, işbirlikçi verilere sık erişim, açık bir şekilde ortak depolama anlamına gelir ve nadiren erişilen veriler (özellikle büyük boyutlar), sık kullanılanlardan ayrı olarak saklanmalıdır.

7.7. Fiziksel Modeller

Bir veritabanının fiziksel tasarım aşaması genellikle şunları içerir:

- veritabanı organizasyon yönteminin seçimi;

- dahili seviyesinin veri modeli aracılığıyla dahili şemanın spesifikasyonunun geliştirilmesi;

- kavramsal şemanın içsel şemaya eşlenmesinin açıklaması.

Erken DBMS'lerin aksine, birçok modern sistemin bu aşamada geliştiriciye herhangi bir seçenek sunmadığını belirtmek önemlidir. Gerçekte, fiziksel bir model tasarlama sorunları, bir veri düzeni şemasının seçimini (dosyalara veya türe göre ayırma) içerir. YAĞMA -dizi) ve dizinlerin sayısını ve türünü belirtme (örneğin, durumda kümelenmiş veya kümelenmemiş) MS SQL Sunucusu).

Veritabanının saklanma şekli, kavramsal veritabanı şemasının özelliklerine göre DBMS motorları tarafından otomatik olarak "varsayılan olarak" belirlenir ve dahili şema bu tür sistemlerde açıkça kullanılmaz.

Ayrıca, harici veritabanı şemalarının genellikle uygulama geliştirme aşamasında oluşturulduğuna dikkat edilmelidir.

7.8. Tasarım otomasyon araçları

Genel durumda konu alanı hakkında resmileştirilmiş bilgi, metin açıklamaları şeklinde temsil edilebilir: iş tanımları, iş kuralları vb. Ancak, etki alanı modelini temsil etmenin metinsel yolu verimli değildir. Veritabanlarının ve bilgi sistemlerinin geliştirilmesinde daha bilgilendirici ve yararlı, konu alanıyla ilgili bilgileri temsil etmek için yöntemler uygulayan özel grafik gösterimler kullanılarak yapılan konu alanı açıklamalarıdır. Bugün en ünlüsü yapısal analiz yöntemleridir. SADT (Yapılandırılmış Analiz ve Tasarım Tekniği) ) ve buna dayalı gösterim IDEF 0, veri seti diyagramları, nesne yönelimli analiz tekniği UML (Birleşik Modelleme Dili) ), vb. Bu modellerden herhangi biri, bir yandan konu alanında meydana gelen süreçleri, diğer yandan bu süreçler tarafından kullanılan verileri açıklar.

ObD'nin işlevsel, bilgisel ve davranışsal modelleme yöntemlerinin dayandığı en eksiksiz model sistemi, standartlar ailesinde sunulmaktadır. IDEF (Entegre Tanımlama )(slayt 10).

Görsel bir grafik tekniğine dayanan kavramsal tasarım metodolojisi, bilgi sistemleri geliştiricilerine IS'yi ve teknik çözümleri tanımlamak için katı resmi yöntemler sağlamıştır. Bu modeller, esasen, konu alanının gerçeklerini temsil eden iş analisti ile bu SbA'nın durumunu yansıtmak için bir veri modeli oluşturan programcı (veya yazılım aracı) arasında karşılıklı anlayışı sağlayan bir anlaşmalar sistemidir. Sözleşmeler bu metodolojiye dayalı yazılım ürünlerinde tam olarak uygulanıyorsa, o zaman bu tür analist tarafından geliştirilen modelleri "okuyabilen" otomatik bir sistem, modelin sözdizimini kontrol etmenize ve sonuç olarak bir veri şeması oluşturmanıza izin verecektir.

Kavramsal tasarım metodolojisinin ardından, özel bir sınıfın özel yazılımı ve teknolojik araçları ortaya çıktı - IS'yi oluşturmak ve sürdürmek için teknolojiyi uygulayan CASE araçları.

CASE teknolojisi, bir IS tasarım metodolojisinin yanı sıra, konu alanını görsel olarak modellemenize, bu modeli IS geliştirme ve bakımının tüm aşamalarında analiz etmenize ve kullanıcıların bilgi ihtiyaçlarına göre uygulamalar geliştirmenize olanak tanıyan bir dizi araç.

CASE araçları, IP yaşam döngüsünün belirli süreçlerine işlevsel yönelimlerine göre aşağıdaki gruplara ayrılabilir:(slayt 11 - SAGD).


Konu alanını temsil etmek için uygulanan biçimsel diller betimlemeye izin vermemektedir. tüm tasarımcının önemli gördüğü ilişkiler. Öte yandan, birçok proje (ve özellikle değerlendirme aşamasında olanlar) örnekler ) oldukça basit olarak algılanır ve tasarım kararları bariz görünür. Ek olarak, deneyimli bir programcı, gerekli bilgilerin sunumunu ve işlenmesini hedeflemek için her zaman bazı deneysel ve belki de gerçekten etkili bir yol sunabilir.Ancak bu, veri ve bağlantı miktarındaki artışla birlikte tek bir formalizmi terk etmek anlamına gelir. , veritabanı yönetimi sorunlarını ve özellikle kullanıcı organizasyonu ve erişim yöntemlerini anlama sorunlarını büyük ölçüde karmaşıklaştırır.

bahsetmek daha doğru olacaktır. kayıt dışılık makul olmanın imkansızlığı ile ilgili açık modelleme için kullanılan araçların (gerçekten var olan) nesnelerinin seçimi.

30.03.17 3351

Bu makalede açıklanan ilkeleri izleyerek, düzgün çalışan ve gelecekte yeni gereksinimlere uyarlanabilecek bir veritabanı oluşturabilirsiniz. Temel ilkeleri gözden geçireceğiz veri tabanı tasarımı ve optimize etmenin yolları.

Veritabanı tasarım süreci

Düzgün yapılandırılmış veritabanı:

  • Gereksiz verileri ortadan kaldırarak disk alanından tasarruf etmeye yardımcı olur;
  • Veri doğruluğunu ve bütünlüğünü korur;
  • Verilere kolay erişim sağlar.

Veritabanı geliştirme aşağıdaki adımları içerir:

  1. Gereksinimlerin analizi veya veri tabanının amacının belirlenmesi;
  2. Tablolardaki verilerin organizasyonu;
  3. Birincil anahtarların gösterilmesi ve ilişkilerin analizi;
  4. Tablo normalleştirme.

Her birini düşünün veritabanı tasarım aşaması daha fazla. Bu öğreticinin, Edgar Codd'un SQL ile yazılmış ilişkisel veritabanı modeline odaklandığını unutmayın ( hiyerarşik, ağ veya nesne modeli değil).

Gereksinim Analizi: Veritabanının Amacını Belirleyin

Örneğin, bir halk kütüphanesi için bir veritabanı oluşturuyorsanız, hem okuyucuların hem de kütüphanecilerin veritabanına nasıl erişmesi gerektiğini düşünmeniz gerekir.

Veritabanı oluşturmadan önce bilgi toplamanın birkaç yolu:

  • Kullanacak kişilerin anketi;
  • Faturalar, çizelgeler, anketler gibi iş formlarının analizi;
  • Mevcut tüm veri sistemlerinin dikkate alınması ( fiziksel ve dijital dosyalar dahil).

Veritabanına dahil edilecek mevcut verileri toplayarak başlayın. Ardından depolamak istediğiniz veri türlerini belirleyin. Bu verileri tanımlayan nesnelerin yanı sıra. Örneğin:

müşteriler

  • Adres;
  • Şehir (*): Eyalet (*): Posta kodu;
  • E-posta adresi.

Ürün:% s

  • İsim;
  • Fiyat;
  • Stoktaki Miktar;
  • Siparişin altındaki miktar.

Emirler

  • Sipariş numarası;
  • Satış Temsilcis;
  • Tarih;
  • Ürün;
  • Miktar;
  • Fiyat;
  • Fiyat.

İlişkisel bir veritabanı tasarlarken, bu bilgiler daha sonra veritabanının tablolarını ve alanlarını tanımlayan veri sözlüğünün bir parçası haline gelecektir. Bilgileri mümkün olan en küçük parçalara ayırın. Örneğin, kişileri yaşadıkları duruma göre filtreleyebilmeniz için posta adresi ile eyalet alanını ayırmayı düşünün.

Veritabanına hangi verilerin dahil edileceğine, bu verilerin nereden geleceğine ve nasıl kullanılacağına karar verdikten sonra asıl veritabanını planlamaya başlayabilirsiniz.

Veritabanı yapısı: yapı taşları

Bir sonraki adım, veritabanını görselleştirmek. Bunu yapmak için, ilişkisel veritabanlarının nasıl yapılandırıldığını tam olarak bilmeniz gerekir. Bir veritabanı içinde, ilgili veriler, her biri satır ve sütunlardan oluşan tablolar halinde gruplandırılır.

Veri listelerini tablolara dönüştürmek için ürünler, satışlar, müşteriler ve siparişler gibi her nesne türü için bir tablo oluşturarak başlayın. İşte bir örnek:

Tablodaki her satıra kayıt denir. Kayıtlar, belirli bir müşteri gibi bir şey veya biri hakkında bilgileri içerir. sütunlar (alanlar veya nitelikler de denir) Tabloda listelenen tüm müşterilerin adresleri gibi her giriş için görüntülenen aynı türdeki bilgileri içerir.

Bir veritabanı modeli tasarlarken kayıtlar arasında tutarlılığı sağlamak için her sütuna uygun bir veri türü atayın. Yaygın veri türleri şunları içerir:

  • CHAR - belirli metin uzunluğu;
  • VARCHAR - çeşitli uzunluklarda metin;
  • METİN - büyük miktarda metin;
  • INT, pozitif veya negatif bir tamsayıdır;
  • FLOAT , DOUBLE - kayan nokta sayıları;
  • BLOB ikili veridir.

Bazı VTYS'ler, her satırda otomatik olarak benzersiz bir numara oluşturan Otomatik Sayı veri türünü de sunar.

Veritabanının görsel sunumunda her tablo diyagramda bir blok ile temsil edilecektir. Her bloğun başlığı, bu tablodaki verilerin neyi tanımladığını belirtmeli ve nitelikler aşağıda listelenmelidir:

saat bilgi veritabanı tasarımı varsa, hangi özniteliklerin her tablo için birincil anahtar olarak hizmet edeceğine karar vermeniz gerekir. birincil anahtar ( PKK) bu nesne için benzersiz bir tanımlayıcıdır. Bununla, yalnızca bu değeri bilseniz bile belirli bir müşterinin verilerini seçebilirsiniz.

Birincil anahtarlar olarak seçilen öznitelikler benzersiz, değişmez olmalıdır ve NULL olarak ayarlanamaz ( boş olamazlar). Bu nedenle, sipariş numaraları ve kullanıcı adları uygun birincil anahtarlardır, ancak telefon numaraları veya adresler değildir. Aynı anda birden çok alanı birincil anahtar olarak da kullanabilirsiniz ( buna bileşik anahtar denir).

Gerçek veritabanını oluşturma zamanı geldiğinde, VTYS'niz tarafından desteklenen bir veri tanımlama dili aracılığıyla hem mantıksal hem de fiziksel yapıyı uygularsınız.

Ayrıca, istediğiniz performansı elde edebileceğinizden ve yeterli depolama alanına sahip olduğunuzdan emin olmak için veritabanının boyutunu da tahmin etmeniz gerekir.

Varlıklar Arasında İlişkiler Oluşturma

Artık veriler tablolara dönüştürüldüğüne göre, aralarındaki ilişkileri analiz etmemiz gerekiyor. Bir veritabanının karmaşıklığı, birbiriyle ilişkili iki tablo arasında etkileşime giren öğelerin sayısıyla belirlenir. Karmaşıklığın belirlenmesi, verilerinizi en verimli şekilde tablolara ayırmanıza yardımcı olur.

Her nesne, üç bağlantı türünden biri kullanılarak bir başkasıyla ilişkilendirilebilir:

bire bir iletişim

B nesnesinin her örneği için yalnızca bir A nesnesi örneği olduğunda, bunların bire bir ilişkisi olduğu söylenir ( genellikle 1:1 olarak anılır). Bu tür bir ilişkiyi, her iki ucunda bir tire bulunan bir çizgi ile bir ER diyagramında belirtebilirsiniz:

Veritabanlarını tasarlarken ve geliştirirken, bu verileri ayırmak için bir nedeniniz yoksa, 1:1 ilişki genellikle bu tabloları tek bir tablo halinde birleştirmenin daha iyi olduğunu gösterir.

Ancak belirli koşullar altında 1:1 ilişkilerle tablolar oluşturmak daha uygundur. Birçok kayıt için boş olan "açıklama" gibi isteğe bağlı verilere sahip bir alanınız varsa, tüm açıklamaları ayrı bir tabloya taşıyarak boş alanları ortadan kaldırabilir ve veritabanı performansını artırabilirsiniz.

Verilerin doğru bir şekilde ilişkilendirildiğinden emin olmak için her tabloya en az bir özdeş sütun eklemeniz gerekir. Büyük olasılıkla birincil anahtar olacaktır.

Bire Çok İlişki

Bu ilişkiler, bir tablodaki bir kayıt diğerindeki birden çok kayıtla ilişkili olduğunda ortaya çıkar. Örneğin, bir müşteri çok sayıda sipariş vermiş olabilir veya bir okuyucu aynı anda kütüphaneden birkaç kitap ödünç almış olabilir. Bire çok ilişkiler (1:M), bu örnekte olduğu gibi "karga ayağı etiketi" olarak adlandırılır:

1:M ilişkisini uygulamak için "bir" tablodaki birincil anahtarı diğer tabloya öznitelik olarak ekleyin. Bir birincil anahtar başka bir tabloda bu şekilde listelendiğinde yabancı anahtar olarak adlandırılır. "1" ilişkisinin yanındaki tablo, diğer taraftaki alt tablonun üst tablosudur.

Çoktan Çoka İlişki

Bir tablonun birden çok nesnesi, diğerinin birden çok nesnesiyle ilişkilendirilebildiğinde. Bağlantıları olduğunu söylüyorlar çoktan çoğa» ( E:N). Örneğin, öğrenciler ve dersler söz konusu olduğunda, bir öğrenci birçok derse katılabileceğinden ve her derse çok sayıda öğrenci katılabilir.

ER diyagramında bu ilişkiler aşağıdaki satırlar kullanılarak görüntülenir:

Bir veritabanı yapısı tasarlarken, bu tür bir ilişkiyi uygulamak imkansızdır. Bunun yerine, onları bire çok ilişkilere ayırmanız gerekir.

Bunu yapmak için, bu iki tablo arasında yeni bir varlık oluşturmanız gerekir. Satışlar ve ürünler arasında bir M:N ilişkisi varsa, bu yeni nesneyi adlandırabilirsiniz " satıldı_ürünler' gibi her satış için veri içerecektir. Hem satış tablosu hem de ürünler tablosu, sold_products ile 1:M'lik bir ilişkiye sahip olacaktır. Çeşitli modellerde bu tür ara nesnelere bağlantı tablosu, ilişkisel nesne veya bağlantı tablosu denir.

Bağlantı tablosundaki her giriş, komşu tablolardan iki varlığa karşılık gelecektir. Örneğin, öğrenciler ve kurslar arasındaki ilişkiler tablosu şöyle görünebilir:

Zorunlu mu değil mi?

İlişkileri analiz etmenin bir başka yolu, diğerinin var olması için ilişkinin hangi tarafının var olması gerektiğini düşünmektir. İsteğe bağlı taraf, çizgi üzerinde bir daire ile işaretlenebilir. Örneğin, Birleşmiş Milletler'de bir temsilcinin olması için bir ülkenin var olması gerekir, tersi değil:

İki nesne birbirine bağımlı olabilir ( Kişi başkaları olmadan var olamaz).

özyinelemeli bağlantılar

Bazen bir veritabanı tasarlarken bir tablo kendini gösterir. Örneğin, bir çalışan tablosu, aynı tablodaki başka bir kişiye atıfta bulunan bir "yönetici" özelliğine sahip olabilir. Buna özyinelemeli bağlantılar denir.

Ekstra bağlantılar

Ekstra bağlantılar, birden fazla kez ifade edilenlerdir. Genellikle bu bağlantılardan birini herhangi bir önemli bilgiyi kaybetmeden kaldırabilirsiniz. Örneğin, "öğrenciler" nesnesinin "öğretmenler" adı verilen başka bir nesneyle doğrudan ilişkisi varsa ve aynı zamanda "dersler" aracılığıyla öğretmenlerle dolaylı bir ilişkisi varsa, "öğrenciler" ve "öğretmenler" arasındaki bağlantıyı kaldırmanız gerekir. Çünkü öğretmenlerin öğrencilere atanmasının tek yolu derslerdir.

Veritabanı normalleştirme

Veritabanının ön tasarımı yapıldıktan sonra tabloların doğru yapılandırılmasını sağlamak için normalizasyon kuralları uygulanabilir.

Aynı zamanda, tüm veritabanlarının normalleştirilmesi gerekmez. Genel olarak, gerçek zamanlı işlem işlemeye sahip veritabanları ( OLTP) normalize edilmelidir.

Etkileşimli analitik işlemeye sahip veritabanları ( OLAP) daha kolay ve daha hızlı veri analizine izin veren belirli bir denormalizasyon derecesi ile daha verimli olabilir. Buradaki ana kriter, hesaplamaların hızıdır. Her form veya normalleştirme düzeyi, daha düşük formlarla ilişkili kuralları içerir.

Normalleştirmenin ilk şekli

Normalleştirmenin ilk biçimi ( kısaltılmış 1NF) sırasında söylüyor mantıksal veritabanı tasarımı tablodaki her hücre, bir değerler listesi değil, yalnızca bir değere sahip olabilir. Bu nedenle, aşağıdaki gibi bir tablo 1NF ile uyumlu değildir:

Verileri ek sütunlara bölerek bu sınırlamayı aşmak isteyebilirsiniz. Ancak bu aynı zamanda kurallara da aykırıdır: yinelenen veya yakından ilişkili öznitelik gruplarını içeren bir tablo, ilk normalleştirme biçimine uymaz. Örneğin, aşağıdaki tablo 1NF ile uyumlu değildir:

Bunun yerine, veritabanının fiziksel tasarımı sırasında, verileri her hücre yalnızca bir değer içerene ve ek sütun kalmayana kadar birden çok tabloya veya kayda bölün. Bu tür veriler, kullanılabilir en küçük boyuta bölünmüş olarak kabul edilir. Yukarıdaki tabloda ek bir tablo oluşturabilirsiniz " Satış detayları", belirli ürünleri satışlarla eşleştirecek. "Sales", " ile 1:M ilişkisine sahip olacak Satış detayları».

Normalleştirmenin ikinci biçimi

Normalleştirmenin ikinci biçimi ( 2NF) özniteliklerin her birinin tamamen birincil anahtara bağlı olması gerektiğini şart koşar. Her öznitelik, başka bir öznitelik aracılığıyla dolaylı olarak değil, doğrudan birincil anahtarın tamamına bağlı olmalıdır.

Örneğin, “yaş” niteliği “doğum gününe” bağlıdır, bu da “öğrenci kimliğine” bağlıdır ve kısmi işlevsel bağımlılığa sahiptir. Bu öznitelikleri içeren bir tablo, ikinci normalleştirme biçimine uymaz.

Ayrıca, birden fazla alandan oluşan birincil anahtara sahip bir tablo, bir veya daha fazla alan anahtarın her bir bölümüne bağlı değilse, ikinci normalleştirme biçimini ihlal eder.

Bu nedenle, ürün adı özelliği sipariş numarasına değil, ürün kimliğine bağlı olduğundan, bu alanlara sahip bir tablo ikinci normalleştirme biçimiyle eşleşmeyecektir:

  • Sipariş numarası (birincil anahtar);
  • Ürün Kimliği (birincil anahtar);
  • Ürün adı.

Üçüncü normalleştirme biçimi

Üçüncü normalleştirme biçimi ( 3NF) : anahtar olmayan her sütun, diğer tüm sütunlardan bağımsız olmalıdır. eğer ilişkisel veritabanı tasarımı anahtar olmayan bir sütundaki bir değeri değiştirmek, başka bir değerde değişikliğe neden olur, bu tablo üçüncü normalleştirme biçimine uymaz.

3NF'ye göre, aşağıdaki örnekte doğrudan toplam sipariş değeriyle ilgili olan Vergi sütunu gibi tabloda herhangi bir türetilmiş veri depolayamazsınız:

Bir zamanlar, ek normalleştirme biçimleri önerildi. Boyce-Codd normalleştirme biçimi, dördüncü ila altıncı biçimler ve alan anahtarı normalleştirmesi dahil, ancak ilk üçü en yaygın olanlarıdır.

çok boyutlu veri

Bazı kullanıcıların, özellikle OLAP veritabanlarında, aynı türdeki verilerin birden çok görünümüne erişmesi gerekebilir. Örneğin, müşteriye, ülkeye ve aya göre satışları bilmek isteyebilirler. Bu durumda müşteri, ülke ve ay tabloları tarafından referans alınabilecek bir merkezi tablo oluşturmak daha iyidir. Örneğin:

Veri bütünlüğü kuralları

Ayrıca kullanarak veritabanı tasarım araçları Verilerin belirli kurallara uygunluğunun kontrol edilmesi olasılığını dikkate alarak veritabanını yapılandırmak gerekir. Microsoft Access gibi birçok DBMS, bu kurallardan bazılarını otomatik olarak uygular.

Bütünlük kuralı, bir birincil anahtarın asla NULL olamayacağını belirtir. Anahtarın birden çok sütunu varsa bunların hiçbiri NULL olamaz. Aksi takdirde, girişi belirsiz bir şekilde tanımlayabilir.

Bilgi bütünlüğü kuralı, bir tabloda listelenen her yabancı anahtarın, başvurduğu tablodaki bir birincil anahtarla eşlenmesini gerektirir. Birincil anahtar değiştirilirse veya silinirse, bu değişiklikler, veritabanında o anahtar tarafından başvurulan tüm nesnelere uygulanmalıdır.

İş mantığı bütünlüğü kuralları, verilerin belirli mantıksal parametrelere uymasını sağlar. Örneğin, toplantı saati standart iş saatleri içinde olmalıdır.

Dizinler ve Görünümler Ekleme

İndeks, artan veya azalan düzende değerlere sahip bir veya daha fazla sütunun sıralanmış bir kopyasıdır. Bir dizin eklemek, kayıtların daha hızlı bulunmasını sağlar. Her sorgu için yeniden sıralama yapmak yerine, sistem kayıtlara indeks tarafından belirtilen sıraya göre erişebilir.

Dizinler veri alımını hızlandırsa da, bir kayıt değiştiğinde dizinin yeniden oluşturulması gerektiğinden veri eklemeyi, güncellemeyi ve silmeyi yavaşlatabilirler.

Görünüm, saklanan bir veri sorgusudur. Görünümler, birden çok tablodan veri içerebilir veya bir tablonun bir bölümünü görüntüleyebilir.

Genişletilmiş özellikler

Sonrasında veritabanı modeli tasarımı belirli bir şema, görünüm veya sütun için geçerli olan yardım metni, giriş maskeleri ve biçimlendirme kuralları gibi gelişmiş özelliklerle veritabanınızı iyileştirebilirsiniz. Bu yöntemin avantajı, bu kurallar veritabanının kendisinde depolandığından, verilerin temsilinin verilere erişen birden çok program arasında tutarlı olmasıdır.

SQL ve UML

Birleştirilmiş Modelleme Dili ( UML) nesne yönelimli bir dilde oluşturulmuş karmaşık sistemleri ifade etmenin başka bir görsel yoludur. Bu eğitimde bahsedilen bazı kavramlar UML'de çeşitli isimlerle bilinmektedir. Örneğin, UML'deki bir nesne sınıf olarak bilinir.

Artık UML çok sık kullanılmamaktadır. Bu günlerde akademik olarak ve yazılım geliştiricileri ile müşterileri arasındaki iletişimde uygulanmaktadır.

Veritabanı Yönetim Sistemleri

Tasarladığınız veritabanının yapısı, kullandığınız DBMS'ye bağlıdır. En yaygın olanlardan bazıları:

  • OracleDB;
  • MySQL;
  • Microsoft SQL Sunucusu
  • PostgreSQL ;
  • IBM DB2.

Maliyete, kurulu işletim sistemine, çeşitli özelliklerin kullanılabilirliğine vb. göre doğru veritabanı yönetim sistemi seçilebilir.

Makalenin çevirisi " Veritabanı Yapısı ve Tasarım Eğitimi» güler yüzlü proje ekibi.

İyi kötü