Veri Tabanı Yönetim Sistemleri
Veri tabanı Yönetim Sistemleri 1-Veri tabanına ilişkin kavramlar 2-Veri tabanı Tasarımı 3-Veri tabanı modelleri 4-Veri normalizasyonu 5-CBS de veritabanı işleyişi
1-Veri tabanına ilişkin kavramlar
-Veri tabanı birbirleriyle ilişkili veriler topluluğudur. - Bir organizasyonun etkili olarak işletilebilmesi için doğru ve zamanında bilgiye ihtiyaç vardır. - Veri şeması: Veri organizasyonunu anlatır.
Çalışanlar Adı SAdı IDN DTarih Adres Cinsiyet Maaş BolNo Bölümler BolAdı BolNo Kod Çalışılır Bolum_ Yerleri IDN PNo Saat BolNo BolYer Proje PAdı PNo PYeri BolNo Bir iş yerine ait basit bir ilişkisel veritabanı şeması
Veri dosyalarının dosya işleme çerçevesinde uygulamalar arasında paylaşımı: Data File1 Data File2 Data File3 Uygulama Program 1 Uygulama Program 2 Çıktı 1 Çıktı 2 Veritabanı
Veritabanı yönetim sistemi çerçevesinde Uygulamalar arasında veri paylaşımı Data File1 Data File2 Data File3 Veritabanı İşletim Sistemi (DBMS) Uygulama Program 1 Uygulama Program 2 Çıktı 1 Çıktı 2 Veritabanı
Çoklu kullanım görünümleri sunulan veritabanı bilgi sunumu Veritabanı Alıcı adlarıi and adresleri Satış bilgisi Envanter verisi Satıcılar DBMS Client Name Address... Date City Item Unit Price Total Item Supplier INVENTORY HISTORY MONTH Units Units Units Sold Reserved on Hand Jan Feb March...
Veritabanı Yönetim Sistemleri (VTYS) VTYS veritabanı oluşturan ve sürdüren programların topluluğudur. VTYS çeşitli uygulamalar için veritabanlarının; tanımlama (veri tipleri ie. İnt, real, character), yaratma (verinin bir depolama medyasında depolanması VTİS tarafından kontrol edilen bir işlemdir) işlem yapmayı (sorgulanması, güncellenmesi) sağlayan genel amaçlı bir yazılımdır. Veritabanı + VTYS (yazılım) = Veritabanı Sistemi
VTYSin bileşenleri Kullanıcı Uygulama programcısı İleri kullanıcı Veritabanı işletimcisi Özellikli Arayüz Programlama Arayüzü Sorgulama Arayüzü Veri Tanımlama Arayüzü Sorgulama Veri İşleticisi Veritabanı İşletim Sistemi İndeksler Depolanmış Veri Veri Tanımı Disk Deposu
Veritabanı sistemi mimarisi
VTYS (DBMS)nin avantajları: Merkezi kontrol Veri etkili bir şekilde paylaşılabilir Veri bağımsızlığı Yeni veritabanı uygulamalarında kolaylık Kullanıcıya direk ulaşım Veri tekrarı kontrol altında tutulabilir Kullanıcı görünümleri Verinin yeniden çağrılmasını sağlar Veri tutarlılığını sağlar
VTYS (DBMS)nin dezavantajları : Fiyat Karmaşıklık Yetişmiş insan
Veri Şeması -Veri şeması veri organizasyonunu anlatır. Tasarım sırasında belirlenir ve çok sık değişmemesi beklenir. -Veri şeması birçok değişik formda bulunabilir.
Formal Veri Şeması Formal veri şeması veri organizasyonunu anlatan yapısal bir dil kullanır. Veri şemasını gösteren diagrama şema diagramı denir. Parcel ID Acquisition Year Name Address Parcel Owned By Person Contains Corner Points X,Y SIN
Grafik Veri Şemasında kullanılan kavramlar: Varlık tipi (Class: Similar entities define an entity type, which is a set of entities that have the same attributes.i.e. Employee) Fiziksel: araba, kişi Kavramsal: iş, kurum Öznitelik: property of an entity that describe it Kişi: isim, adres Araba: renk, seri#, İlişki Tipleri: İki veya daha çok varlık arasında ilişki Sahip olma (Parsel, Kişi) Kapsama (Parsel, Köşe noktaları)
Tablo tabanlı Şema: Tablo PARCEL(ID,YEAR,OWNER_SIN) Tablo CORNER_POINTS(Parcel_Id, X,Y) Tablo PERSON(SIN,Name,Address) PARCEL ID YEAR OWNER_SIN CORNER_POINTS PARCEL_ID X Y PERSON SIN NAME ADDRESS Bu tip şema diagramı dosyanın yapısını gösterir fakat gerçek verileri ve ilişkileri göstermez.
Düz dosya veritabanı (attribute) Öznitelik Öznitelik Öznitelik (record)kayıt Değer(value) Değer Değer Kayıt Değer Değer Değer Kayıt Değer Değer Değer
Tablo tabanlı Veri şeması Örneği Tablo PARSEL ID YEAR OWNER_SIN P102 1964 343302192 Tablo CORNER_PT PARCEL_ID X Y P102 34332 34032 P102 34332 34363 P102 34551 34262 Tablo PERSON SIN NAME ADDRESS 343302192 K.Smith 10 Main St. P102 34551 34032
Tablo tabanlı veri şemasında kullanılan kavramlar: -Tablo öznitelik değerlerinin tutulduğu sabit sayıda alanları kapsar. Veri kayıtlar şeklinde depolanır. -Tablodaki herbir kayıt tek olmalıdır. -Herbir kayıt aynı sayıda alana (field) sahip olmalıdır. -Herhangi bir kayıt başka bir tabloya referans olamaz, fakat diğer bir tablodaki kayıtlar ile çapraz referanslama olabilir. PAR EL_ID MUNICIPAL OWNER AQU_YR P100 Keçiören Demir, A 1986 P200 Çankaya Çam, M 1963 P300 KEçiören Akay, O 1934 P200 Çankaya Çam, M. PAR EL_ID 1963 MUNICIPAL OWNER AQU_YR P100 Keçiören Demir, A P200 Çankaya Çam, M P300 KEçiören Akay, O P200 Çankaya Çam, M. 1986
2-VERİTABANI TASARIMI
Veritabanı Tasarımı Veritabanı Tasarımını Ne Belirler? Kullanıcı gereksinimleri CBS uygulama gereksinimleri Mevcut veri ve dönüşüm maliyeti Veri dönüşüm taslağı Gelecekteki gelişim Bakım
CBS VERİTABANI TASARIMI CBS veritabanı uygulaması: Tek kullanıcılı Çok kullanıcılı, büyük ölçek - Büyük paylaşımlı veritabanları için önemli noktalar: Aynı zamanda erişim ve çok kullanıcılı güncellemeler için gereksinmeler. Büyük işlerin yönetimi için gereksinmeler Aynı veritabanından farklı pencereler veya birçok görüntü için gereksinmeler.
Daha az sistem bağımlılığı Daha çok sistem bağımlılığı Veritabanı Tasarım Adımları Veritabanı veritabanı tasarımcısı tarafından tasarlanır. Kavramsal veritabanı tasarımı: - Yüksek seviye veri modeli kullanılır - Varlıklar, ilişkiler, öznitelikler ve şartlar. - Tüm müdahaleler belirlenir. Mantıksal veritabanı tasarımı: Yüksek seviye veri modelinden uygulama veri modeline geçiş sağlanır. İlişkisel, ağ, hiyeyarşik. Fiziksel veritabanı tasarımı: Veritabanı için depolama yapıları ve dosya organizasyonu seçilir. Herbir VTİS verinin organize edilmesinde değişik seçeneklere sahiptir: indeks seçimi, emniyet, vb.
Neden veritabanı tasarımı önemlidir? Veri CBSnin temelidir. Veri içeriği, kalitesi, ve yapısal tasarımı CBS kullanımını sınırlar. Veri CBSnin en pahalı parçasıdır. Verinin düzeltilmesi veya değiştirilmesi pahalıdır.
Neden veritabanı tasarımı önemlidir? İyi tasarlanmış veritabanı... Kullanıcıları tasarım sırasında içine alır Hali hazırdaki uygulamaları ve gelecektekileri destekler Değişik veri kümeleri arasında tutarlıdır. İyi organize edilmiş ve geliştirilmesi kolaydır Titizlikle test edilmiştir
Tüm kullanıcıların erişimi Paylaşılan Veri Şimdiki ve gelecekteki birçok kullanıcıya destek Uygulamaya bağımlı veri güncellemesi
Paylaşılan veri Yararları Verinin yeniden çağrılmasındaki, analizlerdeki ve sonuçtaki esnekliği arttırır. Tekraradan doğan depolamayı minimize eder. Veri toplanmasında, depolanmasında ve kullanılmasındaki bedeli dağıtır.
Veritabanı Tasarım Adımları Kullanıcı Gereksinimleri Veri Envanteri ve Belirlenmesi Taslak Veritabanı Tasarımı Pilot Testi Son Veritabanı Tasarımı
Amaç Açıklamaları Kullanıcı Gereksinimleri Data Veri Inventory Envanteri and ve Belirlenmesi Evaluation Taslak Veritabanı Pilot Test Tasarımı Draft Pilot Database Test Design Final Son Veritabanı Database Tasarımı Design Veri gereksinimleri belirlenir Veri belirlenir ve örnekler toplanır Mevcut veritabanları, donanım, yazılım ve karar prosedürü belirlenir. Hangi verinin oluşturulacağı yaratılır. Veri öncelikleri tanımlanırveri/fonksiyon matriksi. Kompleks iş akışları için veri akış diagramları geliştirilir.
Amaç Açıklamaları Kullanıcı Gereksinimleri Data Veri Inventory Envanteri and ve Belirlenmesi Evaluation Taslak Veritabanı Tasarımı Pilot Test Veri kaynaklarının bir envanteri çıkarılır Mevcut CBS veya CAD veritabanaları Mevcut elektronik (tablosal) veritabanları Kağıt haritalar veya fotoğraflar Mikrofiş dosyalar Veri kaynakları tespit edilir Son Veritabanı Tasarımı
Amaç Açıklamaları Kullanıcı Gereksinimleri Data Veri Inventory Envanteri and ve Belirlenmesi Evaluation Taslak Veritabanı Tasarımı Pilot Test Son Veritabanı Tasarımı Uygulama gereksinimleri Performans gereksinimleri Kullanım kolaylılığının testi Tekrarın minimize edilmesi Esnekliğin/geliştirilmenin sağlanması Kritik iş gereksinimlerini desteklemesi Basit tutulmalı
Amaç Açıklamaları Kullanıcı Gereksinimleri Data Veri Inventory Envanteri and ve Belirlenmesi Evaluation Taslak Veritabanı Tasarımı Pilot Test Son Veritabanı Tasarımı Pilot bir alan test edilir Veri değişim işlemleri geliştirilir ve test edilir Veritabanı tasarımı test edilir Deneme uygulamaları Veritabanı pilot çalışma sonucunun belirlenmesi için tasarım dondurulur Birçok veritabanı tasarımı değişimleri pilot alanın yeniden dönüşümünü gerektirir.
Amaç Açıklamaları Kullanıcı Gereksinimleri Data Veri Inventory Envanteri and ve Belirlenmesi Evaluation Taslak Veritabanı Tasarımı Pilot Test Son Veritabanı Tasarımı CBS veritabanı açıklaması Belirgin veri elemanları Fiziksel format Kodlama şeması Son raporun hazırlanması Veri sözlüğünün hazırlanması
Veri sözlüğünde önde gelen Bileşenler Kartografik katmanlar Öznitelik tabloları Geliştirilen veri tabloları İlişkili lookup tabloları Harita notasyonları (text) Harita kütüphanesi yapısı
3-Veri modelleri
Veri tabanı modeli Nedir? Bilginin depolanması ve yeniden çağrılması için mantıksal bir oluşumdur.
Geçmişte veri tabanları hiyerarşik olarak sıralanmışlardı... USA Oregon California New York Ventura Santa Barbara Contra Costa
Hiyerarşik veri modeli: Bir alan anahtar alan olarak tanımlanır. İlişkiler: Bire bir Çoktan bire Bilgiye hierarşik ağaç yapısı takip edilerek ulaşılır Öznitelik alanlarda sorgulama yapılamaz.
Klasik veri Modelleri: Avantajları: Daha esnek Büyük veri kümelerine daha hızlı erişim Teorik bir tabanları ve matamatiksel teorisi mevcut Anlaşılması ve güncellenmesi kolay Daha az tekrar Hava yolları bilet rezervasyonları için uygun Dezavantajları: Uygulama yapması ve düzeltilmesi daha zor Düşük performans
Ağ Veri Modelleri Bir entity birçok ebeveyn ve çocuk sahibi olabilir ve bir kök gerekmez. İlişkiler çoktan-çoka olabilir. Hierarşik modele göre veri depolamasında daha az tekrara sahiptir. Daha hızlı tekrar ulaşımı sağlamakta fakat veri ilişkilerinin düzeltilmesi zor. CODASYL(Conference on Data System Languages), 1960 ortalarında gleiştirilmiştir.
Yakın zamanda kullanılan CBS VTYS ilişkisi ilişkisel veritabanları ile olmakta Veriler için birçok düz dosyalara bağlıdır Aynı olmayan öznitelik yapıları Ortak öznitelik anahtarı ile bağlanırlar. Anahtar her bir veri için atomik seviyede TEK belirteçtir.
İlişkisel Veritabanları File Patient Record Key Check-in Check Out Room No. 42 2/1/96 2/4/96 N763 78 2/3/96 2/4/96 N712 Purchase Record Item Date Price Customer Key Skate Board 2/1/96 49.95 John Smith 42 Baseball Bat 2/1/96 17.99 James Brown 978 File File Accident Report Date Injury Name Key Location 2/1/96 Broken Leg John Smith 42 75 Elm Street 2/2/96 Concussion Sylvia Jones 654 12 State Street 2/2/96 Cut on Ear Robert Doe 123 2323 Broad Street
İlişkisel Veri Modeli Domain kavramı (değer kümesi) Herbir öznitelik değeri için alabileceği kabul edilen değerler kümesi vardır. Domain veri tipi ve ek olarak bir takım kısıtlamalar ile belirlenir. Örneğin bir kişinin yaşının değer kümesi 0 ile 120 arasında olan tam sayılardır. TABLE STUDENT(ID,AGE,NAME) AGE(INT,0-120) Değer kümesi kavramı tutarlılık ve hata durumlarını kontrol etmede faydalıdır..
İlişkisel Veri Modeli Atomic Değerler Kavramı İlişkideki herbir veri değeri atomik olmalıdır. Atomik değer başka kısımlara bölünemiyen ve geri çağrılmada esas birimdir. Sorgulama atomik değerin bir kısmını adresliyemez. Adress(cadde numarası, cadde adı,ve posta kodu) Atomik değer içiçe girmiş ilişkilere izin vermez. Çokdeğerli öznitelikler farklı ilişkiler ile temsil edimelidir (Renkleri için tek renkli arabalar bir değere, iki renkli arabalar iki değere sahiptir) Composite öznitelikler sadece basit bir bileşeni ile temsil edilirler (adress değeri 300 Koru Caddesi, Ankara.
İlişkisel Veri Modeli kayıtı tek olarak belirten bir veya birkaç öznitelik anahtarı oluşturur. Bir ilişkinin kayıtları diğer bir ilişkinin kayıtları ile anahtar yardımı ile bağlanabilirler. Örnek: PARCEL_ID ve MUNICIPAL bileşeni anahtardır. PARCELS PARCEL_I D 100 Çankaya 200 Çankaya 100 Keçiören MUNICIPAL OWNER AQU_YR
4-Veri normalizasyonu
Veritabanı tasarımında neden normalizasyon? Yer kazandırır Farklı tipteki ilişkileri tutar Birden çokluya Çokludan bire Diğer tipteki ilişkiler. Öznitelik verisini saklar Mevcut veritabanlarına bağlantıyı sağlar. Veri tekrarını azaltır Veritabanı stabilitesini ve esnekliğini arttırır. Veri tutarsızlığını azaltır.
Birinci Normal Form Tekrar Eden Gruplar Atılır Normalizasyon yapılmamış durum: Parcel Id Corner Points 1011 2382,3482, 2384,3821, 2348,3842, 2399,3492, 2395,3890 1025 5482,3891, 5418,3812, 5420,3889 Normalizasyon yapılmış (Tüm satırlar aynı uzunlukta ve herbir veri değeri atomik) Parcel Id Corner Points 1011 2382,3482, 1011 2384,3821 1011 2348,3842 1011 2399,3492 1011 2395,3890 1025 5482,3891 1025 5418,3812 1025 5420,3889
İkinci Normal Form Çok değerli Anahtarın bir Kısmına Bağımlılık Gösteren Veri Atılır Normalize edilmemiş form: PID Municipal Area Land Registration Office 1011 Ankara Yaprak cad, Mamak 200 1012 Ankara Yaprak cad, Mamak 340 1025 Konya Kozlu cad. Meram 126 1026 Konya Kozlu cad. Meram 670 Normalize edilmiş formlar: PID Municipal Area 1011 Ankara 200 1012 Ankara 340 1025 Konya 126 1026 Konya 670 Municipal Ankara Konya Land Registration Office Yaprak cad, Mamak Kozlu cad. Meram İkinci ve üçüncü normal formlar anahtar olmayan ve anahtar olan öznitelikler arasındaki ilişki ile ilgilidir.
Üçüncü Normal Form: Anahtara Bağlı Olmayan Veri Atılır Normalize edilmemiş form: PID Municipal OwnerSIN OwnerName Area 1011 Ankara 234-876-723 A.Deniz 200 1012 Ankara 234-876-723 A.Deniz 340 1025 Konya 477-654-194 H.Uzun 126 1026 Konya 477-654-194 H.Uzun 670 Normaize edilmiş Forms: PID Municipal OwnerSIN Area 1011 Ankara 234-876-723 200 1012 Ankara 234-876-723 340 1025 Konya 477-654-194 126 1026 Konya 477-654-194 670 OwnerSIN OwnerName 234-876-723 A.Deniz 477-654-194 H.Uzun Üçüncü normal form her hangi bir anahtar olmayan öznitelik değerinin diğer bir anahtar olmayan öznitelik değerine bağımlılığı durumunda oluşur. Üç normal form içinde, 1NF zorunludur, çünkü SQL gibi ilişkisel bir sorgulama dili 1NF ilişkisinde olmayan durumları ele alamaz. Güncelleme sırasında oluşacak tutarsızlıkların önlenmesi için 2NF ve 3NF önerilmektedir.
ÖRNEK
ÖRNEK
ÖRNEK
ÖRNEK
5-CBS de veritabanı işleyişi
CBS öznitelik veri ile harita verisini bağlar Öznitelik Veri Düz dosyalar İlişkiler Harita verisi Nokta dosyası Doğru dosyası Alan dosyası Topoloji Tema
CBS şu soruya cevap verir: Ne nerede? Ne: Özniteliklerin karakteristikleri. Nerede: Coğrafi konum.
VTYS ile CBS Arasındaki Farklar VTMS büyük hacimli verinin işletim amacıyla kurulan genel amaçlı sistemdir. Geleneksel olarak, VTMS ler iş uygulamaları amaçlı tasarlanır ve kullanılırlar. CBS büyük hacimli mekansal verinin işletimi ve analizi için oluşturulan bir sistemdir. CBS bir VTYS bileşenini kapsar. Birçok veri organizasyonu coğrafi sorgulama yapamamaktadır. CBS sistemleri içlerinde VTYS leri bulundurur veya ticari bir VTYS e bağlanır. Örnekler: Dbase, ORACLE, Excel, Paradox
İlişkilendirme
İlişkilendirme
Sorgulamalar CBS sorgulaması genelde emir satırları, menü veya makro ile olmaktadır. Birçok CBS yazılımları hem menu tipindeki sorgulama arayüzünü hem de makro veya programlama dillerini desteklemek amacıyla bilgisayar işletim sisteminin GUI paketlerini kullanırlar. SQL ilişkisel veritabanlarında standart bir arayüzdür ve pek çok CBS tarafından desteklenir.
Procedural Query Languages (PQL): Kullanıcının hiyerarşiyi bilmesini gerektirir. Non-Procedural Query Languages (NPQL): Sorgulamayı yapmak için kullanıcının veritabanı yapısını bilmesine gerek yoktur. SQL(Sequential Query Language developed by IBM) SQL İşlemleri: İlişkisel: > < = >= <= Aritmetik: = + * / Boolean: AND OR NOT XOR
VTYS sorgulama dilleri ile sorgulama Diz (sort) Yeniden numarala (renumber) Altküme (subset) Tara (search)
Emirler ile öznitelik sorgula ması (Comma nd line attribute query) find in states where state_name = California <1 record in result> use states calculate in states population_density = population / area <50 records in result> restrict in states where population_density > 1000 <20 records selected in result>
(SQL)
(SQL) Yeni bir Tablonun Oluşturulması Yeni bir tabloyu, tablo ismini ve içerdiği sütün isimlerini veri türleri ile birlikte belirterek oluşturabilirsiniz: CREATE TABLE weather ( city varchar(80), temp_lo int, temp_hi int, prcp real, date date );
(SQL) Tablolara Satırların Girilmesi INSERT cümlesi tablolara veri girişi için kullanılır: INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
(SQL) Eğer bir tabloya artık ihtiyacınız kalmadıysa ya da onu baştan oluşturmak istiyorsanız şu komutu kullanabilirsiniz: DROP TABLE tabloismi;
(SQL) SELECT * FROM weather; aynı sonuç böyle de alınacaktır: SELECT city, temp_lo, temp_hi, prcp, date FROM weather; Çıktı şöyle olmalıdır: city temp_lo temp_hi prcp date ---------------+---------+---------+------+------------ San Francisco 46 50 0.25 1994-11-27 San Francisco 43 57 0 1994-11-29 Hayward 37 54 1994-11-29 (3 rows)
(SQL) SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather; Bunun çıktısı şöyle olacaktır: city temp_avg date ---------------+----------+------------ San Francisco 48 1994-11-27 San Francisco 50 1994-11-29 Hayward 45 1994-11-29 (3 rows)
(SQL) SELECT * FROM weather WHERE city = 'San Francisco' AND prcp > 0.0; Sonuç: city temp_lo temp_hi prcp date ---------------+---------+---------+------+------------ San Francisco 46 50 0.25 1994-11-27 (1 row)
(SQL) Sorgu sonucunun sıralanmış olmasını da isteyebilirsiniz: SELECT * FROM weather ORDER BY city; Sonuç: city temp_lo temp_hi prcp date ---------------+---------+---------+------+------------ Hayward 37 54 1994-11-29 San Francisco 43 57 0 1994-11-29 San Francisco 46 50 0.25 1994-11-27
Coğrafi elemanların özellikleri boyut dağılım desen tamlık komşuluk şekil Ölçek yön
Doğru Sembollerinin ele Alınması ve Look-up tablolar MunicipalBdry Dash+space NationBdry ProvinBdry Dash+space+Dot+Space Dot+space Point Symbol File A municipal boundary Display
Doğru Sembollerinin ele Alınması ve Look-up tablolar