Python Uygulamaları
Python
Uygulamaları
Merhaba
Arkadaşlar. Bu haftadaki konularımız. Python
Uygulamaları
1
Python Standard Kütüphanesindeki Bazı Temel Fonksiyonlar ve Sınıflar
2
Python'da Tarih ve Zaman İşlemleri
3
time Modülü
4
time.time Fonksiyonu
5
time.ctime Fonksiyonu
6
time.localtime Fonksiyonu
7
datetime Modülü
8
datetime.date Sınıfı
9
datettime.timedelta Sınıfı
10
calendar Modülü
11
Python'da Veritabanı İşlemleri
12
Veritabanı Yönetim Sistemleri
13
Gömülü VTYS Kavramı (Embedded DBMS)
14
MySql'in Kurulumu
15
Sql Server'ın Kurulumu
16
SQL Veri Türleri
Python Standard Kütüphanesindeki Bazı
Temel Fonksiyonlar ve Sınıflar
Bu bölümde Python'ın standart kütüphanesindeki
çeşitli modüller içerisinde bulunan çeşitli temel fonksiyonlar ve sınıflar ele
alınacaktır. Bu temel fonksiyonlar ve sınıflar başka konularda da çeşitli
biçimlerde kullanılmaktadır.
Python'da Tarih ve Zaman İşlemleri
Bu bölümde Python Standart Kütüphanesindeki tarih ve
zaman işlemlerini yapan fonksiyonlar ve sınıflar ele alınacaktır.
time Modülü
time modülü C Programlama Dilindeki prototipleri
<time.h> içerisinde bulunan standart tarih zaman işlemlerini yapmaktadır.
C programcıları bu modüldeki fonksiyonlara oldukça aşina olacaklardır. Bu modülü kullanmadan önce import etmeyi unutmayınız.
time.time Fonksiyonu
time.ctime Fonksiyonu
ctime
fonksiyonu time fonksiyonundan elde edilen saniye sayısını parametre olarak
alır ve tarih zaman bilgisini bize str türünden yazısal biçimde verir.
time.localtime Fonksiyonu
localtime
isimli fonksiyon time fonksiyonundan elde edilen değeri parametre olarak alır
ve bize o değerin tarih zaman karşılığını struct_time isimli bir sınıf nesnesi
olarak verir.
datetime Modülü
datetime
modülünün içerisinde tarih ve zamanı tutmak için kullanılan date, time,
timedelte, datetime gibi sınıflar ve bazı yardımcı fonksiyonlar vardır.
Nasıl datetime.time sınıfı zaman bilgisini tutmak
için bulundurulmuşsa datetime.date sınıfı da tarih bilgisini tutmak için
bulundurulmuştur. Bir datetime.date nesnesi sınıfın başlangıç metodu yoluyla
aşağıdaki gibi yaratılabilir:
>>> d = datetime.date(2013, 7, 23)
>>> print(d)
2013-07-23
>>> type(d)
<class
'datetime.date'>
Yine
tarihin bileşenlerini biz sınıfın day, month ve year örnek öznitelikleriyle
elde edebiliriz. Örneğin:
datettime.timedelta Sınıfı
datetime
modülünün timedelta sınıfı zaman aralığını turmak için düşünülmüştür. Sınıfın
__init__ metodunun parametrik yapısı şöyledir:
datetime.timedelta(days=0, seconds=0,
microseconds=0, milliseconds=0, minutes=0, hours=0,
weeks=0)
Örneğin:
>>> td = datetime.timedelta(hours=5,
minutes=15, seconds=50)
>>> print(td)
5:15:50
calendar Modülü
calendar
isimli modül bazı temel takvimsel işlemleri yapan fonksiyonlara ve sınıflara
sahiptir. Modülün isleap isimli fonksiyonu ilgili yılın artık olup olmadığını
bize verir. Örneğin:
>>> import calendar
>>> calendar.isleap(2000)
True
calendar modülünün TextCalendar isimli sınıfı takvim
işlemleri için kullanılmaktadır. Sınıfın başlangıç metodu haftanın hangi günden
başlayacağını belirtir (0 = Monday, 1 = Tuesday, 2 = Wednasday, ...). Günler
için Calendar sınıfında tanımlanmış sembolik sabitler vardır. TextCalendar
sınıfının prmonth isimli metodu ay takvimini ekrana bastırır. Örneğin:
Python'da Veritabanı İşlemleri
İçeriğine hızlı bir biçimde erişilmek ve onları
güncellemek için düzenlenmiş (organize edilmiş) bilgilerden oluşan dosyalara
veritabanı denilmektedir. Şüphesiz veritabanları işletim sistemlerinin sunduğu
dosya sistemi ile ele alınıp kontrol edilmektedir.
Ancak veritabanları bilginin hızlı elde edilmesi
için daha yüksek seviyeli algoritmik bir organizasyon içermektedir. Ticari
uygulamaların çok büyük çoğunluğu veritabanı kullanmaktadır. Bu nedenle veritabanı
işlemleri bunların performanslarını belirleyecek en önemli etkenlerden biri
durumundadır. Tabii veritabanları yalnızca ticari uygulamakrda değil aslında
her türlü uygulamalarda karşımıza çıkabilmektedir.
Veritabanı
işlemleri kabaca üç biçimde yapılabilmektedir:
1)
Programcı algoritmik alt yapıya sahipse veritabanı işlemini yapan fonksiyonları,
sınıfları ve metotları kendine uygun bir biçimde gerçekleştirebilir.
2)
Programcı firmalar ya da kurumlar tarafından oluşturulmuş olan veritabanı
kütüphanelerini kullanabilir. (Örneğin tarihsel açıdan bakıldığında DBVista,
Btreve, CTree gibi pek çok veritabanı kütüphanesi kullanılmıştır.)
3)
Programcı veritabanı işlemlerini yapmak için oluşturulmuş ismine
"Veritabanı Yönetim Sistemi (Database Management System)" denilen
özel yazılımları kullanabilir. Bugün veritabanı işlemleri ağırlıklı olarak VTYS'ler
kullanılarak yapılmaktadır.
Veritabanı Yönetim Sistemleri
VTYS'ler
veritabanı işlemlerini yapmak için geliştirilmiş özel yazılımlardır. Tipik
olarak VTYS yazılımlarının özellikleri şunlardır:
- VTYS'lerde aşağı seviyeli dosya
işlemleriyle kullanıcının ilişkisi kesilmiştir. Kullanıcılar VTYS'lerle
çalışırken yüksek seviyeli soyutlamalar kullanırlar. Örneğin bilgilerin hangi
dosyalarda nasıl tutulduğuyla kullanıcılar ilgilenmezler.
- VTYS'ler client-server mimariye uygun olarak
tasarlanırlar. Yani onlara birden fazla kişi aynı anda erişip işlem yaptırabilir.
- VTYS'ler belli bir güvenlik mekanizmasına
sahiptir. Yani bunlardaki veritabanlarına erişmek için "user name", "password"
gibi bilgilere sahip olmak gerekir.
- VTYS'ler bilgilerin bozulmasına karşı dirençli
biçimde tasarlanmışlardır. Örneğin elektrik kesilmesi gibi bir durumda sistem
kendini onarabilmektedir.
- VTYS'ler bize ilave bazı araçlar da sunarlar.
Örneğin backup-restore gibi utility'lere sahiplerdir.
- VTYS'ler işleri kolay yapmak için "yönetim
konsollarına" da sahiptirler. Yani bunlar üzerinde komut satırından ya da görsel
olarak işlemler yapılabilmektedir.
- VTYS'ler kullanıcıdan istekleri yüksek seviyeli
deklaratif diller yoluyla almaktadır. Örneğin SQL bu amaçla kullanılan bir
dildir. Biz VTYS'nin veritabanına kayıt eklemesi için bir SQL komutunu veririz.
VTYS o SQL komutunu inceler ve bizim istediğimiz işlemi arka planda C/C++ ile
yazılmış olan kodları çalıştırarak yapar. SQL yalnızca bizim VTYS'ye istekte
bulunmamız için kullanılmaktadır. Yoksa VTYS aşağı seviyeli disk işlemlerini
C/C++'ta yazılmış motor kısmıyla yapar.
Bugün
için çok kullanılan ilişkisel DBMS'ler şunlardır:
- DB2 |
(IBM) |
- Oracle |
(Oracle) |
- Sql Server |
(Microsoft’un. Paralı fakat bedavası da var) |
- MySql |
(Open Source, fakat Oracle tarafından yönetiliyor) |
- PostgreSql |
(Open Source) |
- H2 |
(Open Source) |
- SqLite |
(Open Source, Embedded) |
- Access (Jet Engine) |
(Microsoft, Embedded) |
Gömülü VTYS Kavramı (Embedded DBMS)
Bir VTYS'nin kendisinin kurulması zaman alan bir
süreçtir. Ayrıca VTYS'ler arka planda servis olarak çalıştıklarından belli bir
sistem kaynağını kullanırlar. Bazı küçük ve orta ölçekli uygulamalarda bir
VTYS'nin kurulması istenmeyebilir.
Örneğin küçük bir rehber uygulaması için MySql gibi
bir VTYS'nin hedef bilgisayara kurulması ve konfigüre edilmesi zahmetl bir
süreçtir. Bu tür uygulamalarda kendisi VTYS gibi davranan fakat aslında tek bir
kütüphaneden (DLL'den oluşan) VTYS'ler kullanılmaktadır. Bunlara gömülü VTYS’ler
denir. Gömülü VTYS'ler gömülü sistemlerde de yoğun olarak kullanılmaktadır.
Gömülü VTYS'ler client-server biçimde çalışmazlar.
Aslında bunlar yapı bakımından veritabanı kütüphanelerine benzemektedir. Ancak
VTYS'lerin bazı özelliklerini barındırmaktadır. Gömülü VTYS'lerin en çok kullanılanı
SqLite'tır. Microsoft'un Jet Motoru da Windows sistemlerinde çok
kullanılmaktadır. (Örneğin Access bu Jet motorunu kullanıyor. Bu yüzden bu
VTYS'ye access de denilmektedir.)
MySql'in Kurulumu
MySql'i kurmak için tek yapılacak şey server
programı indirip yüklemektir. Kurulum basittir. Birtakım sorular default değerlerle
geçilebilir. Ancak kurulum sırasında bizden bir root parolası istenecektir. Bu
parola yetkili olarak VTYS'ye bağlanmak için gerekir. Server programın yanı
sıra bir yönetim ekranı elde etmek için ayrıca "MySql Workbench" programı
da kurulabilir. “MySql Workbench” eskiden “MySql GUI Tools” isimli paketteki programların
birleştirilmesiyle oluşturulmuştur. Bu eski versiyonlar da hala
kullanılmaktadır. “MySql GUI Tools” paketinin de kurulmasını tavsiye ederiz.
Sql Server'ın Kurulumu
SqlServer paralı bir üründür. Fakat bunun da
"Express Edition" isminde bedava bir sürümü vardır. Bu sürüm Microsoft'un
sayfasından indirilip kurulabilir. Tıpkı MySql'de olduğu gibi Sql Server'da da
bir yönetim programı da vardır. Buna "Sql Server Management Studio"
denilmektedir. Bunun da indirilip kurulması tavsiye edilir.
SqLite'ın Kurulumu
SqLite zaten tek bir DLL'den oluşmaktadır.
Dolayısıyla kurulumu diye bir durum söz konusu değildir. Ancak yönetim konsolu
olarak pek çok alternatif vardır. Bu yönetim konsolları SQLite’ın işlemlerini
yapan DLL’i de zaten indirmektedir. DSQLite için yönetim konsollarından biri
"FireFox Add On olarak çalışmaktadır. FireFoz üzerinden bu hemen
yüklenebilir. Diğer iki seçenek “SQLite Studio” ve “SqLite Management Studio”
programlarıdır. Bunlar bedavadır ve doğrudan yüklenebilir.
SQL Veri Türleri
SQL ISO tarafından standardize edilmiş bir dildir.
Ancak VTYS'ler bu standarları desteklemekle birlikte kendilerine özgü
eklentilere ve komutlara da sahip olabilmektedir. Bu nedenle örneğin MySql'deki
SQL ile SqlServer'daki SQL arasında ayrıntılarda farklılıklar olabilir. SQL
veri türleri tablo sütunlarını oluştururken o sütunlardaki bilginin formatını
belirlemekte kullanılmaktadır. Standart SQL veri türlerinin önemli olanları
şunlardır:
INTEGER:
Tamsayısal bilgileri tutan bir türdür. İstenirse kaç digitlik sayıların tutulacağı
da belirtilebilir.
INT:
Tipik olarak 4 byte uzunluğunda işaretli tamsayı türüdür.
SMALLINT:
Tipik olarak 2 byte'lık işaretli tamsayı türüdür.
BIGINT:
Tipik olarak 8 byte uzunluğunda işaretli tamsayı türüdür.
FLOAT:
Tipik olarak 4 byte'lık gerçek sayı türüdür.
DOUBLE:
Tipik olarak 8 byte'lık gerçek sayı türüdür.
TIME:
Zaman bilgisini saklamak için kullanılan türdür.
DATE:
Tarih bilgisini saklamak için kullanılan türdür.
DATETIME:
Hem tarih hem zaman bilgisini saklamak için kullanılan türdür.
CHAR(n):
n karakterli yazıyı tutmak için kullanılan türdür.
VARCHAR(n):
En fazla n karakterli bir yazıyı tutmak için kullanılan türdür.
TINYTEXT:
Yazısal bilgileri tutmak için kullanılan türdür. (Tipik olarak 256 byte'a kadar)
TEXT:
Yazısal bilgileri tutmak için kullanılan türdür. (Tipik olarak 64K'ya kadar)
LONGTEXT:
(Tipik olarak 4GB'ye byte'a kadar)
TINYBLOB:
Binary bilgileri tutmak için kullanılan türdür. (Tipik olarak 256 byte'a kadar)
BLOB:
Binary bilgileri tutmak için kullanılan türdür. (Tipik olarak 64K'ya kadar)
LONGBLOB:
Binary bilgileri tutmak için kullanılan türdür. (Tipik olarak 4GB'ye byte'a
kadar)
BOOLEAN:
Böyle sütunlarda TRUE, FALSE biçiminde ikil değerler tutulmaktadır.
Yukarıdaki
türler pek çok VTYS'de vardır. Bunların dışında başka standart SQL veri türleri
de bulunmaktadır. Ayrıca yukarıda belirtildiği gibi her VTYS'de o VTYS'YE özgü
diğerlerinde olmayan türler bulunuyor olabilir.
Yorumlar
Yorum Gönder