Firebird ve arkasından gelenler..

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Selam Kuri_YJ,

Google'da "CREATE FUNCTION" ORACLE şeklinde arama yaparsanız binlerce cevap geliyor (bana 61.200 tane geldi).

Örnek olarak:
http://www.databasejournal.com/features ... hp/2222781

Bu linkte:

"June 19, 2003
Returning Rows Through a Table Function in Oracle
By James Koopmann

In Oracle9i, we are now able to call a table function within the FROM clause of a SQL statement and have it return a result set that mimics what we would normally expect from a traditional SQL SELECT statement."

diye başlayıp devam eden bir yazı var.

Herkese iyi çalışmalar.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Firebird konusunda bu derece derin bilgi sahibi arkadaşların forumumuza katılımı hakikaten sevindirici... Sayelerinde Firebird konusunda epey bilgi edineceğiz gibi görünüyor...
Bilirsiniz dere geçerken at değiştirilmez... Ha deyince de veritabanı değiştirilemiyor... Ama ben galiba 2001 yılında bir projemi Interbase den Sybase e geçirmek zorunda kalmıştım... Genel sebebi uygulamanın DB tarafındaki yükü çok fazla idi... Daha doğrusu olması gerekiyordu ama bu konuda zorlanıyordum... SP ler içinde Istedigim her seyi rahatlıkla yazamıyordum... Bu da bazı kritik işlemlerde çok düşük performansa neden oluyordu... Sybase e geçtikten sonra hayal ettigim her şeyi SP olarak yazabildiğim için bu yonuyle Sybase den memnunum... Aynı projeyi bu aşamadan sonra tekrar Firebird e geri geçirmem mümkün değil ama yeri ve vakti geldikçe Firebird hakkında bazı öğrenmek istediklerimi Ali bey veya bu konudaki diğer bilgili arkadaşlardan öğrenip tahmin ettiğim olumlu cevapları da alırsam potansiyel bir projede Firebird kullanmayı çok ciddi olarak düşünüyorum.....

Kolay gelsin....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Demek functionlara şöle böyle diyorsunuz kandırıyorsunuz ve
gizli temprory table üzerinden sonuçları alıyorsunuz.. güzel. işinizi görüyorsanız mutluysanız ne diyebilirim ki.. zevkler ve renkler tartışılmaz.

ben zaten herkes FB kullansın, FB tek DB olmalı gibi bir amaç gütmüyorum. tam tersi, FB kullanıcıları elit bi grup olarak kalmalı bence.
çünkü nerde çokluk orda kargaşa/karmaşa. Diğer sistemleri kullanırken beyni
ters dönmüş bir sürü kullanıcı gruba yeni katıldığında bir sürü saçma sapan istekte bulunuyor. Oysa biz onlara çözüm bulmak bir yana,
FB kullanırken öyle bir ihtiyacı bile doğmayacağını öğretmeye çalışıyoruz.

Veli Göçer de binlerce daire sattı, kapısı, muslukları, badanası, döşemeleri güzeldi ki sattı. ev ev gibiydi, fonksiyoneldi, çekiciydi, kullanışlıydı.
ama sağlamlık zamanla, değişen şartlarla ilgili bir kavramdır-süreçtir.
bedeli malumdur.
bana ilk tasarlandığı mimari yapısını koruyan, mantıgını değiştirmemiş bir RDBMS gösterir misiniz FB dışında?

FB ün sorunları yok mu? var(dı). ama diğerlerininkiyle taban tabana zıt.
FB de hiç kimse mimari yapıyı tartışmaz. FB ü FB yapan mimarisidir.
FB sorunu kadlama üzerineydi ve bu düzene sokulmadan yeni çok züper fonksiyonlar özellikler eklemek işi daha da zorlaştırırdı.
Open source olmuş 30 milyon satırlık bir kodu dünyanın değişik ülkelerinden birbirini hiç görmemiş insanların toparlayıp düzeltmesi
ticari versiyonun çok üstünde üretmesi normal şartlarda imkansızdır.

Arkadaşın biri, transaction log dedi.. FB transaction log kullanmaz!
ihtiyacı yok. gereksiz veri kaydet-taşı-düzelt işlemleri yapmaz, ek dosyalar kullanmaz verileri takibedebilmek için.(büyük query temp sortlama dışında) Tek bir veritabanı dosyası vardır, herşey onun içinde en az işlem ve maliyetle tutulur. O nedenle saniyede onbinlece kayıt yapabilirsin.

Ama görüyorum ki, ilgilenen yok bunlarla, komut ve fonksiyon
kaynakları sizin için daha önemli...
bana ne, nasıl yaparsa yapsın, benim istediğim yapsın da.. diyebilirsiniz.
bu çok profesyonelce yaklaşım ve tartışacak değilim, tercih meselesi.
Ama en başta da dediğim gibi FB çok farklıdır.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Sanırım anlatmak istediğimi tam açıklayamadım :) Ben yok demedim. M$-SQL deki gibi yok dedim. Oracle'cılar da aşağı yukarı (senin de verdiğin örneklerdeki gibi) yapılabileceğini söylemişlerdi.

Ancak M$-SQL'de bu iş biraz daha kolay. Ama her ikisinde de sorun şu. Function yazıyor olmak ve o fonksiyona göre hareket etmek zorunda kalınıyor.

Bu da aslında onların mimarilerinden kaynaklanıyor. Halbuki FB'de durum böyle değil. Function=UDF, Procedure = Stored Procedure. Bir ayrım yok. Hangisi için ne için istersen rahatlıkla kullanabiliyorsun.

Yani ben Oracle'da böyle bir özellik yok ve yapamazsınız demedim. M$'daki gibi yok demek istedim. Nitekim Oracle'da seninde verdiğin örnekte, OBJE tanımlayı, o OBJE'yi Pipe'layıp, SELECT satırında da dönen değerleri TABLE() ile bir nevi CAST edip sonuç almış.

Kolay Gelsin
En son Kuri_YJ tarafından 14 Ara 2005 03:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

+ Fully ACID compliant. her zaman
+ ANSI SQL compliant. her zaman: 1984
+ Referential Integrity. her zaman
+ Replication (non-commercial and commercial solutions) allowing the duplication of the master database to multiple slave machines.
N-way Raplicationmümkündür MGA yapısı gereği. çoğu sistem
aynı anda tek replikasyona izin verir ve bir sürü kısıtlama getirir.
+ Native interfaces for ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python, and Ruby.

Java class 4

+ Rules. her zaman vardı
+ Views. her zaman vardı
+ Triggers. her zaman vardı
+ Unicode. çıktığından beri
+ Sequences. her zaman
+ Inheritance. bir sistem aynı makinada birçok db yi yönetti her zaman
+ Outer Joins. heh bunu oracle yeni yapabildi garibim
+ Sub-selects. bu her zaman vardı
+ An open API. KEndisi Open apisi kapalı mı olur?
+ Stored Procedures. Hem de en mükemmeli
+ Native SSL support 2006
+ Procedural languages Gayet sade ve çok kullanışlı yakında JAVA
+ Hot stand-by (commercial solutions) nedir bu?
+ Better than row-level locking. her zaman, no locking!
+ Functional and Partial indexes. yapıldı FB2.0 expression index!
+ Native Kerberos authentication. 2006

bi de diğer sistemler bunu yapbilecek mi...
? <2MB executable
? <4MB instal file
? < second install time
? zero administration
? zero cost
? minimum disk space for data and manipulation
? minimum system recource
? paralel multi-index kullanımı (<2.0 bunu planda göteremiyor)
? ücretsiz gönüllü, hızlı destek ve çözüm
? kritik bugları aynı saatlerde fix(daha yaşamadık ama..)
? 20 yıldan fazla bir tecrübe ve altyapı
? 30 yıldan fazla bu işlerde çalışmış dünya çapında gurular
? ...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu arada unutmadan... Benim veritabanım seninkidi döver fanatikliği için değil sadece bildiğimi paylaşmak adına
* Sybase ile 1998 yılından beri SP leri tablo olarak sorgulayabiliyorum.
* computed alan Sybase de de var...
* 1 saniyede install edilemiyor ama :) ayar gerektirmeden çalıştığına hatta sanayide sürekli elektirk kesintisi olan bir dukkanda sybase üzerinde çalışan basit bir programım 4-5 yıldır tık demedi. Yuzlerce defa elektrik kesintisi oldugundan hic suphem yok...
* Online yedek olayı Sybase de biraz farklı transaction log file eğer biraz uğraşırsanız online yedek anlamına gelebilir. Avantajı DB nin tarhinde geçmişe gitme şansınız var. Yani şu tarihte şu girilen veri ve ona bağlı olarak da silisilei olarak bir çok veri yanlışı varsa o ana gidip o veriyi duzelterek duzgun hali ile aradaki sureyi hızlıca film şeridi gibi :D geçirerek günümüze gelme şansınız var. Dezavantajı acil bir durumda anında elinizin altında yedek DB niz olamamıs oluyor.. Fakat teorik olarak da böyel bir acil durumun hiç olmaması gerekiyor ;)
* Blob alan sayısının sınırını bilmiyorum ama Sybase de bir tabloda 18 blob alanım oldu...
* Makinayi terletmemede Sybase'in, Oracle ve MSSql e gore iyi olduğunu düşünüyorum ama bu konuda Firebird un eline su döekn çıkmaz herhadel... Ha belki Paradox olabilir o da hiç terletmez :D ...

Ali Bey, diğer bazı meselelerde sizin Firebird konusundaki bilginiz kadar Sybase konusunda detaylı bilgim olamadığı için cevap veremedim ama dediğim gibi maksat paylaşım olsun.. Şimdilik bu kadar....

Kolay gelsin....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Sevgili Terminatör arkadaşım,

Önceden de söyledim. Polemiğe girmek istemiyorum. "Ama" diye devam eden cümlelerden de hoşlanmıyorum.

Bazı sorular sordun (diğer VT'lerde yok dedin). İlk soruna MS SQL'de var dedim. O zaman ORACLE'da yok dedin. ORACLE'da olduğunu ispat ettim. Bu sefer de varmış ama ... diye yazmışsın.

Yanlış üzerine doğru inşa edilemez. Bu forumu yüzlerce insan takip ediyor. Hata yapılabilir. Önemli olan hatada ısrar etmemektir. İnsanları yanlış bilgilerle yanlış yönlendirmek doğru değil.

Veritabanı tercihi konusunda herkes benimle aynı görüşte olmak zorunda değil lakin :lol: bu konuda görüş belirtirken de diğer veritabanlarına iftira atmak doğru değil (Burada ben olduğunu bilmiyordum veya bana yok demişlerdi mazeretini ben şahsen kabul etmiyorum). Zira ben önce de söyledim Google'da basit bir aramada 61 bin küsür sonuç buldum. Ve ben bu forumda cevap yazarken kılı kırk yarıyorum ki sonra kendimden utanmayayım.

Yanlış anlaşılmamak ve kimseyi kırmamak dileğiyle herkese iyi çalışmalar.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selam Hakan Can,

Sen beni Terminator ile karıştırdın sanırım. Ancak tarz konusunda biraz düşünmek lazım derim ben.

Dikkatli okursan eğer ben M$-SQL'deki gibi yok dediğimi de belirttim. Polemik değil ama lütfen dikkatli okuyalım. Karşınızdakinin neyi kasdettiğini anlamaya çalışalım.

Burada herkes bildiklerini paylaşmakta, kimsenin kimseye bir diktesi de yok.

Yanlış üzerine doğru inşa edilemez. Bu forumu yüzlerce insan takip ediyor. Hata yapılabilir. Önemli olan hatada ısrar etmemektir. İnsanları yanlış bilgilerle yanlış yönlendirmek doğru değil.

Biz de zaten yazdıklarımızda kesin bu böyledir diye bir iddiamız yok. Her şeyi bilseydik herhalde burada olmazdık :) Ama bildiklerimizi de belirtiriz. En doğruyu bildiklerimizi paylaşarak bulabiliriz.


Bazı sorular sordun (diğer VT'lerde yok dedin). İlk soruna MS SQL'de var dedim. O zaman ORACLE'da yok dedin. ORACLE'da olduğunu ispat ettim. Bu sefer de varmış ama ... diye yazmışsın.

Bunu yazan da benim :) Bir şeyi de ispatlamış değilsin. Zira yazdığımı ve ikinci defa yaptığım açıklamayı dahi anlayamamışsın. Bilmiyorum belki ben hala seni anlamıyorumdur.

Herneyse amaç zaten bildiklerini paylaşmak olduktan sonra, elbet bir yerlerde anlaşma noktası bulunur :)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Hakan can, ben Oracleı ilk 1990 da tanıdım kullandım.
Oracle da computed saha haala yok.
selectable stored procedure de yok!
bunu dolaylı olarak yapabiliyorsun, bir dizi takla atarak kod yazarak.
iş kod yazmaya kaldıysa gider procedure sonuçlarını bir connection based temp tabloya atar onu sorgularsın daha kullanışlı olur. ben oracle da procedureleri FB gibi
yapabilmek için package ve temp tablolar kullanmak zorunda kaldım birkaç yıl önce.
Oracle da bir tabloya birden fazla blob da veremiyordun, değişmediyse 10g de...
neden oracle diyorum, çünkü en yaygın ve itibarlıolanı o, onun özellikleri standart sanılıyor.
Sybase yapıyormuş bak 1998 den beri çoğunu.. ne güzel, o zaman MSSQL de yapıyodur çünkü sysbase 6 kodunu satınalıp ürettiler.
bazı fonksiyonları mecburen ekliyorlar gördüğünüz gibi. itibar meselesi..
ama eğreti duruyor, kullanışsız ve kullanımı masraflı. ama var mı var..
Sen FB kullanma bence, sevmek ya da kullanmak zorunda değilsin.
benim anlatmaya çalıştığım şey dblerin fonksiyonlarını yarıştırmak değil,
o fonksiyonların altyapısını hazırlayan şartları göstermekti..
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

@Hakan Can hani böyle şeylerde derler ya alınmaca gücenmece yok. "Oracle'dan veya Microsoft'tan para mı alıyorsun?" :D

Vardır veya yoktur. Anlatılmak istenen bu değil. Bu söylenen özelliklerin çoğu tee 1984 ten beri var. Mesela senin verdiğin Oracle linkinde bu özelliğin Oracle 9i'de çıktığını söylüyor.

Ben FB'ü seviyorum. Hem açık kaynak, orasını burasını kurcukluyorum. Hem de çok güzel özellikleri, çok hafif bir formda sunuyorlar. Destek gerçekten mükemmel.

Hiç Microsoft destek hattı ile görüştünüz mü? Diye bir sorayım ve diyeyim ki, hiç aramayın daha iyi. :D
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Selam Kuri_YJ,

O kadar hızlı forum işliyor ki ben Terminatör'e cevap yazacam derken arada kaç tane cevap gelmiş. Gerçi cevabı göndermeden önce ne olur ne olmaz diye arada başka bir mesaj gelmiş mi diye baktım ama Terminatör'ün bir sonraki mesajını ve Fahrettin beyin mesajını gördüm.

Ben cevabımı Terminatör'ün:
"Demek functionlara şöle böyle diyorsunuz kandırıyorsunuz ve
gizli temprory table üzerinden sonuçları alıyorsunuz.. güzel. işinizi görüyorsanız mutluysanız ne diyebilirim ki.. zevkler ve renkler tartışılmaz."
diye başlayan yazısına cevap olacak şekilde yazmıştım.

Yani sizin yazınızı şimdi okudum. O yazdıklarımı o şekilde değerlendirin.

Tabi bu arada başka yazılar da gelmiş olabilir. Nitekim CoderLord arada göndermiş.


Selam, CoderLord.

Ben daha ziyade yaklaşım tarzını eleştirmeye çalıştım. Yoksa kimsenin ne bilip bilmediğini değil. Somut ve gerçekçi örnek verilmesini istedim sadece bu. Yoksa MS SQL'i olsun ORACLE'ı olsun elbette herkesin kendine göre eleştiriceği bir çok yönleri vardır. Ama :lol: eleştirirken biraz insaflı olmak gerektiğini vurguladım.

Herkese iyi çalışmalar.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Coder'im Lord'um :)

Kimin ağrır o bağırır diye :) Ben bir iki defa görüşmek zorunda kaldımdı. :)

Seni gayet iyi anlıyorum. Baktım olmuyor, Barbaros Plaza'daki yerlerine gidip yüzlerine bastım kalayı. Size ulaşmak, Başbakana ulaşmaktan daha zor diye :)

Sevgiler.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
highmemo

Mesaj gönderen highmemo »

Bu söylenen özelliklerin çoğu tee 1984 ten beri var.

Kuru kahveci mehmet efendi since 1857 :lol:

Ben ne yapayım 1984 var dı ise. Vardı da ne oldu.
Kahveyi yapmış ama sadece kendi içmiş..

Bir çok insan IB olsun FB olsun geçmişi 5-10 yıldan fazla olan insan sayısı
çok azdır bence.

tabi bide borland cephesi var, bir and 6-7 MB den bilmem kaç yüz MB ye çıkardılar IB' yi.
Hava verdiler sanırım. :wink:


Arkadaşlar sonuç olarak:
FireBird ii DB dir İİ yoldadır (değişmezse)

Ama eğer büyük bir proje yapacak olsam
Ne Firebird ne de IB kullanırım,
kanaatimce öyle yada böyle bu aşamaya gelemediler henüz.

Ama KOBI ler için uygun mu gayet uygundur derim (ii kodlarsanız DB ve UI ve DAL tarafında Tabiki!!!).


aleyküm selam Kuri_Yj bu arada. :D
(görüşemiyoruz, dalıverdim düşüncelere okyanusa dalar gibi)

See u later
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

mesela postgresql de şöyle bişe yazılabiliyor.
bence çok güzel bi özellik


Kod:
CREATE TABLE cities (
name text,
population float,
altitude int -- (in ft)
);

CREATE TABLE capitals (
state char(2)
) INHERITS (cities);

Güzel özellik Sadettin. bütün dbler yakında mecburen OO mantığında saklayacak veri yapılarını. o aşamada, sistemin mimarisi önem kazanıyor
locklar gereksiz işlemler, kulağını ters göstermeler yapanlar tıkanacak, şişecek.
PG yapabiliyor birçok şeyi çünkü dediğim gibi mimarisi FB ile aynı.
aynı şeyleri FB de yapacak yakında daha kapsamlı ve kullanışlı bir şekilde.
innodb de aynı mimaride. oracle boşuna satınalmadı onu. çünkü
küçük hızlı ve işe yarayan gerçek bir geleceğin altyapısına ihtiyacı var.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Oh be,

Foruma biraz kan can geldi be :) Hah şöyle ortalık şenlensin :)

Hakan Can, Tamamdır ! Mesajı okuduğunu düşünmüştüm :)

Highmemo, eyvallaaaaaah gözüm. Sen nasılsın :)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla