Transkript
1 VERİTABANI KAVRAMINA GİRİŞ Hiyerarşik yapıda oluşturulmuş olan tablolar bütünlüğüne veritabanı denir. Veritabanı (database) içersideki veriler mutlaka hiyerarşik bir yapıda olmalıdır. l Veritabanı kavramını anlatmak lt için ii çeşitli tanımlar verilebilir: 1- Veri tabanı, belli bir alanda ve birbirleriyle ilişkili olarak düzenlenmiş veriler topluluğudur. 2- Veri tabanı, bir çok kullanıcı tarafından kullanılan birbirleri ile ilişkili geniş bir veri kümesinin düzenlenmesi, depolanması ve sorgulanması için kurulan sistemdir 3- Veri tabanı, bir çok uygulamaya hizmet vermek için zararlı ve gereksiz veriler hariç ilişkili verilerin saklandığı bir veri topluluğudur. 4- Veri tabanı bilgisayar temelli bir kayıt tutma sistemidir. Sistemin amacı verileri kayıt etmek ve bakımını yapmaktır. 5- Veri tb tabanı, bir organizasyondaverilerin il i merkezi ikontrolünü üsağlar. 6- Veri tabanı sistemi, basitçe kompüterize edilmiş bir kayıt takip sistemidir.
2 VERİTABANI KAVRAMINA GİRİŞ Verinin organize olarak tutulmasını, güncellenmesini ve saklanmasını gerektiren her uygulama veritabanı yaratmak zorundadır li yıllara kadar veritabanı uygulamaları, dosya işleme uygulamaları l biçimindei i yapılmıştır. Verinin i organize olarak tutulması ve üzerinde işlemeler yapılması önemli ancak zor bir programlama faaliyeti olarak süregelmiştir. ş Verilerin tutulduğuğ tabloların matematiksel alt yapısı ile ilgili olarak T. E. Codd tarafından yapılan çalışma ile birlikte bugün ilişkisel veritabanı diye bilinen model ortaya atılmış ve günümüzün veritabanı sistemlerinin temel alt yapısı oluşturulmuştur. Bu modele göre her tablo matematiksel olarak varlıklardan oluşan bir kümedir ve kümeler için tanımlı işlemler tablolar üzerinde de geçerlidir. Veritabanlarında birden çok tablo olabileceğinden, bunlar arasındaki ilişki de bir küme işlemi olarak tanımlanabilmektedir. Kaynak : Veritabanı ve uygulamaları Yılmaz Kaya, Ramazan Tekin
3 VERİ TABANLARININ AMACI Büyük miktardaki kurumsal verileri (data) işlemektir. Veriler düzenli bir biçimde elektronik ortamda kaydedilirler. Düzenli olarak yedeklenen ve kontrol edilen bu bilgiler çok sayıda uygulamanın ve kullanıcının hizmetine sunulur. Büyük miktardaki verilerin hızlı ve güvenli bir biçimde gereksinim duyulan bilgiye dönüştürülmesi veri tabanlarının en önemli hedeflerinden birisidir. Veri (İşlenmemiş) Depolama Veri işleme süreci (Sorgulama) Bilgi Dış veri kaynağı Bilginin Sunumu
4 VERİ TABANI YÖNETİM SİSTEMLERİ (DBMS) Bir veri tabanının kurulması, yaşatılması için gerekli bilgisayar yazılımı sistemine Veri tabanı Yönetim Sistemi (Database Management System, DBMS) adı verilir. Veri Tabanı Yönetim Sisteminin Bileşenleri 1- Erişim ve veri işleme. 2- Veri tabanı dili ve (genel amaçlı) bir sorgu dili 3- Genel amaçlı bir güvenlik sistemi 4- Genel amaçlı bütünlük sistemi 5- Yedekleme ve diğer yardımcı programlar 6- Uygulama geliştirme ortamı 7- Rapor üretici 8- Veri yapısını gösteren bir veri sözlüğü
5 VERİ TABANI İLE İLİŞKİLİ BAZI TEMEL KAVRAMLAR VERİ TABANI SUNUCUSU (Database Server) :Dağıtılmış ortamlardaki veri (data) gereksinimini, verilerin sunucu (server) bilgisayarlara taşınmasını zorunlu kılmış ve client/server (istemci/sunucu) veri tabanı ortamlarının doğmasını sağlamıştır. Veri organizasyonunu merkezi olarak yapan Veri tabanı sunucusu, client(istemci) t i) uygulamaların l kendisi i üzerinde depo edilen bilgilere uygun koşullar altında erişmesini sağlayan bir yapıdır. VERİ AMBARI (Data warehouse) : Farklı yerlerde bulunan verilerin karar destek amaçlı kullanılmak üzere gerekli bilgilere dönüştürülmesini ve kullanıcılara dağıtılmasını sağlayan teknolojidir. TRANSACT-SQLSQL : 1970 li yıllarda IBM firması tarafından geliştirilen SQL(Structured Query Language) ilişkisel veri tabanı sistemlerinde bir standart haline gelmiştir. O zamandan bugüne kadar çeşitli SQL versiyonları çıkmıştır. İşte bunlardan biriside Microsoft Transact-SQL dir. SQL ilişkisel veri tabanlarında kullanılan bir dildir. Ms SQL Server, Dbase, Access, Informix, Sybase ve Oracle veri tb tabanı sistemleri it isql dilinii büyükük ölçüde birbiriyle uyumlu bir standart içinde kullanırlar.
6 TEMEL VERİ TABANI NESNELERİ 1- TABLOLAR : Verilerin yerleştiği, kayıt alanlarını, veri yerleşim kurallarını ve tablolar arası bağlantı ilişkileri bilgilerini içine alan nesnelerdir. 2- SORGULAR (QUERY) : Tablolarda yerleşen verileri SQL dilini kullanarak istenilen kriterlere göre sorgulayan, veri tabanı üzerinde her türlü değişikliği yapmak amacı ile hazırlanmış olan nesnelerdir.. 3- FORMLAR : Tablolarda yerleşen verilerin, veri tabanı içinde yer alan sorguların veya hazırlanmış olan program paketçikleri (makroları) nin düzenli ve kullanıcı açısından çok daha kolay ve güvenli olarak kullanımını sağlamakğ amacı ile hazırlanan ara yüzlerdir. 4- RAPORLAR : Tablolardan veya sorgulardan elde edilen bilgilerin bir doküman halinde düzenlenmesine ve istenilen biçimde düzenlenerek çıktı haline getirilmesine olanak sağlayan veri tabanı nesneleridir. 5- MAKROLAR : Özellikle form ve rapor nesneleri içinde daha etkin bir denetim ve kontrol elde edebilmek amacı ile hazırlanmışş olan program parçacıklarıdır. 6- MODÜL : Visual Basic Programlama dilini kullanarak, kullanıcıların veri tabanı üzerinde çok daha güçlü bir denetim elde etmelerini sağlayabilecek kodlamaların gerçekleştirilmesine olanak sağlayan nesnelerdir..
7 NEDEN MS ACCESS? 1- Microsoft Access veri tabanı sistemi, gelişmiş bir ilişkisel veri tabanında olması gereken tüm temel özelliklere sahip olmasının yanında ek özellikleri de bünyesinde içerir. 2- Küçük ve orta ölçekli bir çok firma bugün Access veri tabanını kullanmaktadır. 3- Access veri tabanı bir Microsoft office bileşeni olduğundan, hemen her bilgisayarda kolaylık rastlayabileceğimiz, yaygın olarak kullanılan bir yazılımdır. 4- Yeni başlayanlar için kullanım ve adaptasyon açısından son derece uygun bir platform sağlar.
8 VERİTABANI MODELLERİ Veritabanı modeli; verilerin bir sistemde saklanması için düzenlenme ve sıralanma biçimidir. Yapısal bir düzenlenmedir. Verilerin daha hızlı sorgulanması, daha etkili kullanımlarını sağlamak için bir yöntemdir. 1- Hiyerarşik Model 2- Ağ Modeli 3- ilişkisel Model
9 HİYERARŞİK MODEL Bir ağaç yapısına benzer. Verileri bir ağaç yapısında saklar. Bir kök (kayıt) ve köke bağlığ dallar (kayıtlar) ve her dala bağlığ diğerğ dallar şeklinde bir yapısı bulunmaktadır. İlk defa IBM firması tarafından kullanılmıştır. Bu modeli IBM firmasına ait IMS kullanmaktadır. Evebeyn-çocuk ilişkisine dayanır. Aşağıda hiyerarşik modele ait örnek bulunmaktadır. Şirket Departman Patron İşçiler Projeler e Görevler
10 AĞ MODELİ Hiyerarşik Modeli örnek alır. Hiyerarşik Modelin yetersiz kalmasından dolayı geliştirilmiştir. ş ş Bir çocuk için birden fazla ebeveyn olabileceğiniğ belirten karmaşık bir modeldir. Aşağıda görüldüğü gibiyapılar arasında bir graf yapısı bulunmaktadır. Şirket İşçi Türü Departman İşçiler Atamalar Patron Projeler e Görevler
11 İLİŞKİSEL MODEL Esnek ve güçlü gç bir modeldir. Günümüz veri tabanlarının hemen hemen tümü bu modeli kullanır. Karmaşık olmayan bir model sunar. Veriler tablolarda saklanır. Bu tablolar arasında gerekirse ilişki kurulabilir. Bu modelde tablolara direkt erişilir. Tablolar birbirlerine basit bir mantıkla bağlı olabilirler. Bu da, veriye erişimi ve verinin saklanmasını basitleştirir. Bir tablo birden fazla tablo ile ilişkili olabilir.
12 TABLO, SATIR VE SÜTUN Tablo (table), saklanan verilerin düzenli olarak satırlar (rows), sütunlar (fields) olarak düzenlenmesi ile oluşan yapılardır. Her satır, tabloda bulunan kayıtları (records) göstermektedir. Her sütun, tabloda bulunan her alanda saklanacak verilerin biçimini belirtir. Bir veritabanı tasarımına başlamadan önce veritabanında hangi tabloların olması gerektiği ve her bir tabloda bulunması gereken sütunların düşünülmesi gerekmektedir. k Tabloların oluşturulması her tabloda saklanacak verilerin belirlenmesi ve varsa tablolar arasındaki ilişkilerin düzenlenmesi İlişkili Veritabanı Modelinin önemli adımlarıdır.
13 VERİTABANI TASARIMI - İLİŞKİSEL MODEL Veritabanının tasarımını yaparken yp tek tablo oluşturmakş yerine önem bütünlüğüne sahip verileri ayrı ayrı tablolarız. Daha sonra tablolardaki veriler arasında ilişkiler (relationships) kurarız. Tüm verileri içeren tek tablo Veriler ilişkili tablolar içine dağıtılıyor. Böyle bir tabloya veri girişi i i ve üzerinden veri sorgulaması yapmak performans açısından düşük seviyededir. Verinin Büyük miktarlarda, ve kullanıcı sayısının yoğun olduğu bir trafikde böyle bir veri depolama yaklaşımı faydalı olmaz. Ana tablo Alt tablo 1 Alt tablo 2 İkincil alt tablo 1
14 VERİTABANI TASARIMI - İLİŞKİSEL MODEL Veritabanı tasarımı yaparken ana tbl tabloyu doğruğ olarak tespit etmek çok önemlidir. Öncelik sırasına göre tabloları ilişkilendirmeyeş başlarız. ş İki tablo arasında ilişki kurabilmemiz için iki tabloda birbiri ile eşleşen ortak alanların bulunması mecburidir. Her iki tabloda da aynı isimde alanların bulunması zorunludur. Ortak bir alan mutlaka var olmalıdır. Hiçbir şekilde tekrarlanmayan, çiftlenmeyen, tekil bir alan oluşturuyoruz ve bu alanlar vasıtasıyla ilişkiler kuruyoruz. Örneğin öğrenci veritabanında tabloları öğrenci no alanı ile ilişkilendirebiliriz. İki tablo arasında ilişki kurarken bazı kurallara uyulması gerekir. Temel şart: İki tabloda da birincil anahtar (primary key) olan ortak alanların bulunmasıdır. Yeter şart: Ortak alanları eşsiz nitelikte olması gerekir.
15 BİRİNCİL ANAHTAR (PRIMARY KEY) Access te tablolardaki birincil alanlar (primary key) koyu olarak gösterilir. Primary key tablodaki bir veya daha fazla alandan oluşturulmuş bir anahtardır. Primary key ille de tablodaki tek bir alandan oluşturulur l diye bir kural yoktur. Ancak her tabloda sadece bir ve yalnız bir adet primary key olabilir ve budabir veya birden fazla alandan oluşabilir. ş Access te tasarım görünümünde (dizayn view) ogrencino ve bolumno alanlarından l bir primary key üretmek istersek, control (crtl crtl) tuşu basılı iken fare yardımıyla iki alanı seçip primary key düğmesine basarız. Artık ogrencino ve bolumno su ikisi birlikte aynı olan kayıtlar bu tabloda var olamayacaktır.
16 İLİŞKİLENDİRME TÜRLERİ Tablo1 Tablo2 Birincil anahtar :Primary Key İkincil anahtar :Foreign Key Bir Bir etkileşmesi: Tablo1 ve Tablo2 de birbirine eşit olan kayıtlar listelenir. Bir Çok etkileşmesi: Tablo1 deki tüm kayıtlar ve Tablo2 deki eşit olan kayıtlar listelenir. Bu ilişki SQL içinde LEFT JOIN olarak tanımlanır. Çok Bir etkileşmesi: Tablo2 deki tüm kayıtlar ve Tablo1 deki eşit olan kayıtlar listelenir. Bu ilişki SQL içinde RIGHT JOIN olarak tanımlanır.
17 ACCESS NESNELERİ Tablo Nesnesi Verilerin yerleştiği, kayıt alanlarını, veri yerleşim kurallarını ve tablolar arası bağlantı ilişkileri bilgilerini içine alan nesnelerdir. Sorgu (Query) Nesnesi Tablolarda yerleşen verileri SQL dilini kullanarak istenilen kriterlere göre sorgulayan, veri tabanı üzerinde her türlü değişikliği ğ ş ğ yapmak yp amacı ile hazırlanmış olan nesnelerdir. Form Nesnesi Veri ile kullanıcı arasındaki bir arayüzdür. Kullanıcının veri ile iletişimini kolaylaştıran bir araçtır. Arayüze örnek olarak bir web sayfasını ele alabiliriz. Rapor Nesnesi Mevcut veriyi, sorgudan geçirdikten sonra kullanıcıya sunmak için kullanılır. İşlenmiş verinin döküman halinde sunumunu sağlayan nesnelerdir. Pages Nesnesi html uzantılı web sayfasıdır. Makro Nesnesi Programlama boyutundaki nesnelerdir. Access ortamında programlama seviyesinde uygulama geliştirmek için kullanılan nesnelerdir. Bir makro yazabilmek için (makro nesnesi geliştirebilmek için) visual basic programlama diline hakim olmak gerekir. Module Nesnesi Kullanıcı tanımlı fonksiyonların oluşturulması için kullanılan nesnelerdir ve makro uygulamalarının bir parçasıdır. Gruplar Sekmesi Access ortamında kataloglama için kullanılan bir alandır. Konu başlıklarına göre nesneleri kataloglayabiliriz.
18 ACCESS İLE VERİTABANI OLUŞTURMAK Access veritabanı oluşturmak için 2 yöntem kullanılabilir. Masaüstü (desktop) ortamında farenin sağ tuşuna bastığımızda karşımıza gelen popup (açılır-kapanır) menüden New (yeni) seçilir ve Access dökümanına tıklanır. Popup menüde bilgisayarımızda yüklü olan tüm Office döküman dosyalarını oluşturmak için menü seçenekleri bulunur. Başlat->Tüm Programlar->Microsoft seçeneği seçilir. Office ten Microsoft Access Blank Database: Yeni boş bir veritabanı oluşturmak için kullanılır. Form Existing File: Hazır veritabanları ve web sayfaları içersindeki verilerden yeni bir veritabanı yapısı oluşturmak için kullanılır. Project Using Existing Data: Var olan başka veritabanlarını Access arayüzü ile yönetmek için kullanılır.
19 MİCROSOFT ACCESS TE DİLDEĞİŞTİRMEK Bir bilgisayarda Access in farklı dildeki aynı sürümü yüklü ise arayüz ve yardım dilini isteğimize göre ayarlayabiliriz. Bunun için Start -> Microsoft Office Tools -> Language Settings seçenekleri seçer ve gelen ekranda menüsünde dil seçimi yaparız. Display Office 20##
20 MİCROSOFT ACCESS TE TABLO NESNESINI OLUŞTURMAK Tasarım Görünümünde Tablo Oluşturmak Sihirbaz Yardımıyla Tbl Tablo Oluşturmak Veri Girişi Yaparak Yaparak Tablo Oluşturmak Access te her nesnenin bir adı olmak zorundadır ve o ad sadece o nesneye ait olmalıdır. Aynı ada sahip iki nesne var olamaz. Tabloda alanlara isim verilirken Türkçe karakterler (ı, ğ, ü, ş, ö,ç) kullanılmamalıdır, kelimeler arasında boşluk bırakılmamalıdır. Örneğin, Öğrenci no alan ismi yerine ogrencino veya ogrenci_no yazılabilir. Bu şekilde adlandırma programlama seviyesinde sorunlarla karşılaşmamızı önler.
21 TASARIM GÖRÜNÜMÜNDE TABLO OLUŞTURMAK General: Bir tablonun bir alanının General sekmesi bize o alanın genel özelliklerini gösterir. Lookup: Lookup ise alana veri girişini kolaylaştırmak için kullanılır Lookup: Lookup ise alana veri girişini kolaylaştırmak için kullanılır. Bize alana yapılacak olan veri giriş işleminin klavye yoluyla mı, yoksa var olan hazır bir kaynaktan mı yapılacağını gösterir. Lookup özelliklerini kontrol ederken 2 farklı seçeneğimiz vardır.
22 TASARIM GÖRÜNÜMÜNDE TABLO OLUŞTURMAK 1. Söz konusu alana veri girişini klavye yoluyla yaptığımız vedisplay Control alanında Text Box seçeneğinin tercih edildiği opsiyondur. Varsayılan durumda seçeli tercih text box tır. 2. Diğer opsiyonlarımız List Box ve Combo Box tur. Hem list box, hem de combo box ilgili alana kayıt girişinin hazır birkaynaktan yapılacağına işaret ederler. List box ve combo box un seçilmesi durumunda kayıt kaynağının belirlenmesi amacıyla 2 farklı tercihimiz bulunur. Bu tercihlerden birisi kayıt kaynağının kendimiz tarafından oluşturulmasıdır. Diğeri ise kaynağın veritabanı içersinde bulunan bir tablo veya sorgudan oluşturulmasıdır. Row Source Type ı bu durumdad Vl Value List seçmek kaynağınğ kendimiz i tarafından oluşturulmasına imkan tanır. Eğer ilgili alan sayısal bir içerik taşıyorsa sayı değerleri aralarında ; olacak şekilde yazılır. 100;200;300 gibi. İçerik textt tipindei ise metin değerleriğ çift tırnak ( ) içersinei alınarak yazılır. İstanbul ; Ankara ; İzmir gibi.
23 TASARIM GÖRÜNÜMÜNDE TABLO OLUŞTURMAK Örnek : Lookup sekmesinde Display Control -> Combobox Row Source Type -> Value List Row Source -> Fizik ; Kimya ; >Biyoloji (text veri tipleri için) 1001;1002;1003 (sayı tipleri için) yukarıdaki özellikler ayarlanırsa. Alana veri girişi, açılacak olan liste kutusundan hazır yazılmış seçeneklerden seçim yapılarak yapılabilir.
24 VERİ TİPLERİ Günlük hayatımızda kullandığımız veriler birbirinden farklıdır. Bazen bir isim kayıt ederken, bazen de bu veri bir telefon tlf numarası veya sayısal bir değer ğ olabilir. Veri türleri, veritabanı sistemlerinde, herhangi bir alanda iyi veritabanı tasarımı için önemli konulardır. Örneğin tam sayı (integer) veri türleri bellekte farklı boyutlarda yer kaplarlar. En küçük değerli olabilen en az yer kaplayan türdür. Örneğin integer tipi bellekte 2 byte yer kaplarken long integer tipi4byte yer kaplar. Eğer tablodaki bir alan girilen veri boyutu çok büyük değilse en az yer Eğer tablodaki bir alan girilen veri boyutu çok büyük değilse en az yer kaplayan bir veri türü tanımlanması gerekir.
25 MİCROSOFT ACCESS TE VERİ TİPLERİ Byte 0 ile 255 arasındaki tam sayılarıngirişi için kullanılır. 1 byte lık yer kaplar. Integer (Tam sayı) -32,768 ile 32,767 arasındaki tam sayıların girişi içinkullanılır. 2 byte lık yer kaplar. Long Integer (Uzun tam sayı) 2,147,483,648 ile 2,147,483,647 arasındaki tam sayıların girişi içinkullanılır. 4 byte lık yer kaplar. Single (Tek) E38 ile E 45 arasındaki negatif ondalıklı sayılar veya E 45 ile E38 arası pozitif ondalıklı sayılar girilebilir. Single tipindeki ondalıksayı 7 basamak hassasiyetindedir. 4 byte lık yer kaplar. Double (Çift) E308 ile E 324 arasındaki negatif ondalıklı sayılar veya E 324 ile E308 arası pozitif ondalıklı sayılar girilebilir. Double tipindeki ondalıksayı 15 basamak hassasiyetindedir. 8 byte lık yer kaplar.
26 MİCROSOFT ACCESS TE VERİ TİPLERİ Decimal 10^ ile 10^ arasındaki ondalıklı sayılar girilebilir. 28 basamak hassasiyetinde olabilir. 12 byte lık yer kaplar. Text (Metin) Belirli sayıda alfabetik karakter girişi yapılabilen veri tipidir. Maksimum 255 karakter girişiyapılabilir. Bu alana sembol girişideyapılabilir. Memo (Not) Text tipinin yeterli olmadığı durumlarda kullanılır. 0 ile karakter alabilir. 2 KB (kilobyte) yer kaplar. Currency (Para) ile arasında 15 basamağa kadar hassasiyette ondalık sayılar girilebilir.
27 MİCROSOFT ACCESS TE VERİ TİPLERİ Autonumber (Otomatik sayı) 1 ile arasında tamsayılar alana otomatik olarak yazılır. Kullanıcı bu alana giriş yapamaz. Yes/No (Evet/Hayır) 0veya2değerini alır. 1bit yer kaplar. (8bit, 1byte tır) OLE Object Linking and Embedding anlamına gelen bağlanmış veya tabloya gömülmüş olan nesneleri kapsayan veri tipidir. OLE nesnesi bir resim dosyası olabileceği gibi bir ses veya word dokümanı da olabilir. 1GB a kadar veri kayıt edilebilir. Sabit disk kapasitesine bağlıdır. Null Veritipi Kayıt girilmemiş alanlar null (boş)olarakadlandırılır.
28 TABLOLARA VERİ GİRİŞİNİ MASKELEMEK Sayı veri tiplerinde i maskesini i ele alalım. l 9 rakkamı ile sadece 0 ila 9 arasındaki sayıların basamağa yazılabileceğini belirtiyoruz. 9, ayrıca isteğe bağlı girişi ifade eder. Yani yukarıdaki 10 basamaklı maske ile maskelenmiş bir alana 3 basamaklı bir sayıda girilebilir. Maskede 9 yerine 0 sayısı kullanılmış olsaydı 10 basamağın tümünü de girmek zorunda kalırdık. Özetle 9, isteğe bağlı girilen sayı basamağını, 0 ise girilmesi zorunlu olan basamağı temsil eder. işareti ise sadece görsel olarak veri girişini kolaylaştırır. Veri veritabanında sayı olarak tutulur. Aşağıda Access te kullanılan maske çeşitleri tablolanmıştır. Zorunlu sayı 0 İsteğe bağlı sayı 9 Değer- boşluk veya + - değerleri # Zorunlu Harf L İsteğe bağlı harf? Harf veya sayı girişi Zorunlu karakter boşluk İsteğe bağlı karakter boşluk Büyük karakter Küçük karakter a & C >& <& Sola yaslama Format:! Sağa yaslama Format: *
29 Ders Notları aşağıdaki internet adresinde yer almaktadır. a ad
30