29 Aralık 2014 Pazartesi

Java Random kullanarak Sayısal Loto Örnek

package ORNEK14;
import java.util.Random; // random sayı üretmek için gerekli sınıf
import java.util.Scanner; // kullanıcıdan girdi almak için kullanılan sınıf

public class SAYISAL_LOTO {
    
public static void main(String[] args) {
                      
 Scanner s = new Scanner(System.in); // Scanner sınıfından değişkenimizi üretiyoruz
 System.out.println("KAÇ KOLON OYNAYACAKSINIZ?(1/8)");
 int kolonsayisi = s.nextInt(); // Değeri kolon sayısı olarak kullanalım.
 int kolon[][] = new int[8][6];

 for(int i=0;i<kolonsayisi;i++ ){
     for(int j=0;j<6;j++ ){
         Random rnd = new Random();
         int sayi=1+rnd.nextInt(49);
         if(sayi!=kolon[i][j]){ // Aynı kolondaki sayılar farklı olmalı.
         kolon[i][j]=sayi;
         }
     }
 }
 System.out.println("Oynanan Kolonlar:");

 for(int i=0;i<kolonsayisi;i++ ){
     System.out.println("");

     for(int j=0;j<6;j++ ){
        
         System.out.print(  kolon[i][j] + "  ");
        
     }
 }

     }
 }

9 Kasım 2014 Pazar

SQL Server 2012 "Edit Top 200 Rows" Satır Sayısını Değiştirme

SQL Server'da tablodaki verileri görmek ve editlemek istediğimizde "Edit Top 200 Rows"u açarız, fakat tablolarımızdaki verilen kimi zaman 200'den fazla olabiliyor. 


"Edit Top 200 Rows" sınırını arttırmak  için SQL Server'da neler yapabiliriz?

"Edit Top 200 Rows" seçeneğinde varsayılan değer 200 olan satır sayısını değiştirelim ve bütün tablolara sağ tıkladığımızda "Edit Top 2000 Rows" yapalım.  Menü araç çubuğundan Tools-Options'a giriyoruz.


Açılacak olan Options penceresinde "SQL Server Object Explorer"a tıklıyoruz.


Options penceresinde sağ kısımda "Value for Edit Top <n> Rows command" satırındaki 200'ü 2000 olarak değiştiriyoruz. Artık SQL Server'da hangi tabloya sağ tıklarsak "Edit Top 2000 Rows" olarak değiştiğini görebiliriz. 


Not: Options penceresinde "Value for Edit Top <n> Rows command" altında bulunan "Value for Select Top <n> Rows command" seçeneğinden de "Select Top 1000 Rows" değişikliğinide yapabiliriz.

Eğerki bu değişikliği SQL Server için varsayılan bir değer değilde belirli bir tabloda geçici olarak yapmak istiyorsak Tablomuzun üzerine sağ tıklayıp "Edit Top 200 Rows" açıyoruz. Tablomuz edit modunda açıldıktan sonra toolbardan "Show SQL Pane" butonuna tıklıyoruz.

Query ekranına tabloyu 200 satır olarak edit modda açan SQL kodu gelecek. Bu kodda 200 yazan yeri değiştirerek toolbardan "Execute SQL" butonuna tıklıyoruz.

SQL'de Hata Fırlatmak RAISERROR Kullanımı

Bazı durumlarda SQL serverın hata fırlatmasını beklemeden kendimiz sorgunun hata fırlatıp bitmesini isteriz. Örneğin TRY CATCH ile yakalanamayan hataları kullanıcıya bildirebilmek için TRY CATCH yapısı içinde RAISERROR fonksiyonunu kullanabiliriz. Veya yazdığımız SP yada Trigger hata vermeden bizim kendi kontrollerimiz ile hata fırlatmasını sağlayabiliriz. Ayrıca bu fonksiyon ile kullanıcıya istemiş olduğumuz mesajı verme hakkına da sahibiz. İstediğimiz durum SQL Hatası olmayıp bizim koyduğumuz kontrol neticesinde bir mantık hatası olabilir.

NOT : Örnek sorgulamada Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Genel Yapısı:
RAISERROR('Hata Mesajımız',ERROR_SEVERITY, ERROR_STATE) [WITH LOG]
Örnek: Northwind veritabanımızda sipariş numarası girilerek kayıtların listelenmesi ile ilgili bir sorguda RAISERROR fonksiyonunu kullanalım. Öncelikle hata oluşması durumunda verilecek mesajı sisteme tanımlayalım. Bunun için;
sp_addmessage @msgnum=90001,
@severity=11,
@msgtext='GİRİLEN SİPARİŞ NUMARASI 0 DAN KÜÇÜK VE 11100 DEN BUYUK OLAMAZ',
@with_log='true'

ERROR_SEVERITY değeri olarak 11 vermemizin nedeni severity değer aralığında 11-16 arası "Kullanıcıların düzeltebileceği hatalar" anlamına gelmesidir.Sisteme  yeni mesaj eklemek için "sp_addmessage" sistem saklı prosedürü kullanılır. Mesaj numarasını 90001 olarak vermemin özel bir nedeni yok sadece bilinmesi gereken nokta SQL Server mesaj numaralarının ilk 50000'i kendisine ayırmıştır ve eklenecek mesaj numarasının 50000'den büyük olması yeterlidir. "msgtext" ise hata durumunda verilecek mesajımızdır. Kullanıcı tanımlı mesajları silmek için "sp_dropmessages" sistem saklı prosedürü kullanılır. Gelelim örneğimize;

90001 numaralı hata mesajını sisteme ekledik. Şimdi verilen sipariş numarasına göre Northwind veritabanımızda Order Details tablosu içerisinde arayarak kayıtların listelenip listelenmeyeceğinin belirlendiği bir prosedür oluşturalım.
CREATE PROCEDURE SIPARIS_URUN_LISTE
(
@ID INT=NULL
)
AS
IF @ID IS NULL
BEGIN
RAISERROR ('SIPARIS NUMARASI GIRMELISINIZ',10,1)
RETURN 0
END
IF @ID<0 OR @ID>11100
BEGIN
RAISERROR (90001,10,1)
RETURN 0
END

SELECT * FROM [Order Details]
WHERE OrderID=@ID

Stored Procedure'müzde "ID" değişkenimizi int tipinde tanımladık ve NULL değerini atadık. Prosedürümüzün çalıştırılmasında değişkenimize herhangi bir değer atanmadıysa hata mesajı RAISERROR fonksiyonuyla bize döndürülecektir.

RAISERROR Kullanımı ile ilgili Detaylı bilgi için tıklayınız.

SQL'de TRY CATCH Kullanımı

Bu makalemde SQL Server Hata Yakalama Bloğu (TRY-CATCH) kullanımına değineceğim. 

TRY CATCH Yapısı
TRY CATCH yapısı TRY ve CATCH bloğundan oluşur. Eğer TRY bloğunda bir hata oluşursa kontrol CATCH bloğuna geçer. Bir hata oluşmamışsa CATCH blogu devreye girmez. Bir hata varsa CATCH blogunda hata yakalanır.  CATCH blogunun işletilmesi tamamlandıktan sonra akış bloktan sonraki kodlarla devam eder.

TRY CATCH kullanımında sadece TRY bloğunu tanımlayıp bırakamayız. Bir TRY bloğu tanımladıysak CATCH bloğunuda tanımlamak zorundayız.

Genel Yapısı:
BEGIN TRY 
--SQL Kodlar (Hata olabilecek kod bloğu) 
END TRY 
BEGIN CATCH 
--SQL Kodlar (Hata olduğunda hatanın yakalandığı kısım.) 
END CATCH

MS SQL'de TRY CATCH fonksiyonunun çeşitli işlevsel özellikleri vardır. Bu özellikler CATCH bloğu içinde kendi değerlerini korurlar, CATCH bloğu dışında ise geriye NULL dönerler. 

ERROR_SEVERITY() Hata Dereceleri
  • 0 veya 10 : Kullanıcı veri girişinden kaynaklanan hata 
  • 11-16 arası: Kullanıcının düzeltebileceği bir hata 
  • 17 : Yetersiz kaynak hatası (Diskin dolu olması veya tablonun salt okunur olması vb.) 
  • 18 : Yazılımdan kaynaklanan hata 
  • 19 : Constraint'lere takılan bir hata 
  • 20-25 arası: Kritik hatalar
Örnek 1:
BEGIN TRY
DECLARE @Sayi int = 8/0
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER()    AS 'Hata Numarası',
ERROR_SEVERITY()  AS 'Hata Derecesi',
ERROR_STATE()     AS 'Hata Kod Değeri',
ERROR_PROCEDURE() AS 'Hata SP',
ERROR_LINE()      AS 'Hata Satır Numarası',
ERROR_MESSAGE()   AS 'Hata Mesajı'
END CATCH

 
Örneğimizde 8 sayısı 0'a bölünmeye çalışılıyor. 0'a bölme hatası alıyoruz ve CATCH bloğuna geçiyoruz. Fakat sorgu devam ediyor. Eğer TRY-CATCH kullanmasaydık sorgumuz hata verdiği anda sonlanacaktı.

NOT: TRY-CATCH sadece çalışma anındaki hataları yakalayabilir. SQL kodumuzdaki syntax hatalarını yakalayamaz.

Örnek 2:
BEGIN TRY
DROP TABLE TABLO5;
END TRY
BEGIN CATCH
PRINT 'Hata Oluştu'
PRINT ERROR_NUMBER();   
PRINT ERROR_SEVERITY();
PRINT ERROR_STATE();    
PRINT ERROR_LINE();     
PRINT ERROR_MESSAGE();   
END CATCH

Örneğimizde mevcut olmayan bir tabloyu drop etmek istedim ve dolayısıyla varolmadığı için bir hata oluştu. CATCH bloğuna PRINT ile "Hata Oluştu" mesajını ve TRY-CATCH fonksiyon özelliklerinide yine PRINT ile ekrana yazdırdık.

SQL'de Temporary (Geçici) ve Değişken (Variable) Tabloların Kullanımı

SQL'de oluşturulan geçici tablolar, kullanıcıya ait olan veritabanında tutulmazlar. SQL Server’da tempdb içinde tutulurlar. Bu tempdb sisteme ait bir veritabanıdır. tempdb geçici tabloları tuttuğu gibi aynı zamanda SQL Server üzerinde çalıştırılan sorgular sonucu arka planda tablosal işlemlerin yapıldığı ve verilerin bizim ekranımızda geçici olarak oluşturulduğu yapınında gerçekleşmesini sağlarlar. SQL'de Temporary tablo oluştururken iki seçeneğimiz bulunmakta. Bunlar kullanım şeklinize göre farklılık gösterebilir.
  • Geçici Tablolar (Temporary Tables)
  • Değişken Tablolar (Table Variables)
Geçici Tablolar (Temporary Tables)
Geçici tabloları oluşturmak için de tıpkı normal bir tabloyu oluşturmakta kullandığımız "CREATE TABLE" ifadesini kullanırız. Fakat oluşturulan tablonun gerçek bir tablo mu yoksa geçici bir tablo mu olduğunun ayırt edilmesi için; oluşturduğumuz tablonun sanal bir tablo olduğunu SQL'e "#" işaretini kullanarak bildiririz. CREATE TABLE ifadesinden sonra yazılan tablo isminin başına "#" işaretini eklediğimizde SQL bu tablonun geçici bir tablo olduğunu algılar ve oluşturulan tabloyu yalnızca ilgili oturum için geçerli kılar. Oturum kapatıldıktan sonra veya bir başka Query ekranı açıldığında bu tabloya erişilemez. SQL Serverda geçici tablolara sadece bulundukları ortamlardan erişilebilir. Temp Tabloların normal tablolardan en önemli farkı bir System Database olan tempdb içinde tutuluyor olmalarıdır.

Eğer temp table'a global olarak diğer ortamlardan da erişilmesini istiyorsak o zaman global temp table kullanmamız gerekmektedir. Global Temporary Tables (Genel geçici tablolar) tanımlamak için temp table dan farklı olarak CREATE TABLE dediktenden sonra tablomuzun ismini vermeden önce "##" işaretini 2 adet kullanarak bildirim yaparız. Global Temporary Tables'ın bütün özellikleri temp table ile aynıdır.

Genel Yapısı:
CREATE TABLE #TabloAdı (kolon1 veritipi, kolon2 veritipi) 
--Local Temporary Table için "#" Global Temporary Table için "##" kullanılmalıdır.

Geçici tablolar tıpkı normal tablolar gibi oluşturulurlar sadece önlerinde "#" işareti farkı vardır. 

Örnek:
CREATE TABLE ##Musteriler(MusteriID NCHAR(5), MusteriAdSoyad NVARCHAR(30),
MusteriSehir NVARCHAR(15));
INSERT INTO ##Musteriler(MusteriID,MusteriAdSoyad,MusteriSehir)
SELECT Customers.CustomerID, ContactName, City
FROM Customers 


Örneğimizde ##Musteriler adında bir Global Temporary Table oluşturduk. Query bağlantısında Northwind Database Customers tablosu örneklendi. Resimde görüldüğü gibi aktif database "BAYRAKTAR" olmasına rağmen global bir temporary table oluşturduğumuz için "select *  from ##Musteriler" ile listeleme yaptığımızda verilerin listelendiğini görüyoruz.

SQL Serverda "#" ile başlayan tablolar SQL Server durduğu ana kadar saklanır. Fakat tablolarımızı tempdb altına kendimiz normal tablo ekler gibi eklersek tablolarımız SQL Server kapatılana kadar orda saklanır. SQL Server kapatıldığında temp tablolarımızın silinmesini istiyorsak:
DROP TABLE #TemporaryTable  

Temporary Tablolar Nerede ve Ne Amaçla Kullanılır?
Büyük veritabanları ile çalışırken bir sorgu sonucunda dönen kayıtları başka bir sorguda join işlemine tabi tutmak isteyebiliriz. Temporary Table kullanmak yerine iç içe SELECT sorguları yazılabilir ancak bu büyük kayıtlarda SQL Server üzerinde performans sıkıntısına neden olur. Bu nedenle belirli bir sorgu sonucunu Temporary bir tabloya atmak ve bu tabloyuda başka bir sorguda kullanabiliriz.

Değişken Tablolar (Table Variables)
Değişken tablolarda aslında geçici tablolara benzemektedir. Farkı oluşturduğumuz tablonun bir kısmı tempdb de bir kısmıda Sunucu olarak kullanıdığımız SQL Server belleğinde tutulmaktadır. Oluşturduğumuz tablo isminin başına "@" işareti koyarız. Değişken tablolara erişim temporary tablolara göre daha hızlıdır. Fakat değişken tablolara fazla veri yüklemek belleği dolduracağından performans kaybına yol açabilir. Değişken tabloların Temporary tablolardan en önemli farkı kullanıcı tanımlı fonksiyonlar (User Defined Functions) içinde kullanılabilmeleridir.

Genel Yapısı:
DECLARE @TabloAdı TABLE (kolon1 veritipi, kolon2 veritipi)
  • Değişken Tablolar tıpkı Temporary Tablolar gibi oluşturulurlar önlerinde "@" işareti farkı vardır. 
  • Değişken Tablolar üzerinde index tanımı yapamayız fakat geçici tablolar üzerinde yapabiliriz. 
  • Değişken tablolar üzerinde ALTER TABLE komutunu kullanamayız, yani bu şekilde oluşturulan bir tabloda ALTER TABLE işlemi yapılamıyor. Bu tipteki bir yapı çok fazla veri içermeyecek tablolar için uygundur.
Örnek:
DECLARE @Musteriler TABLE 
(MusteriID NCHAR(5), MusteriAdSoyad NVARCHAR(30), MusteriSehir NVARCHAR(15))
INSERT INTO @Musteriler(MusteriID,MusteriAdSoyad,MusteriSehir)
SELECT Customers.CustomerID, ContactName, City 
FROM Customers 

7 Kasım 2014 Cuma

SQL'de Transaction Oluşturma ve Kullanımı

Transaction  Nedir?
Transaction için SQL Server ortamında kullandığımız iş birimidir diyebiliriz. Çoğu zaman bir transaction yalnızca bir türde işlem yapar, yani sadece veri silme, veri güncelleme veya veri ekleme gibi tek türde işlem yapar. Ama bir transaction içinde birden fazla da işlem yapılabilir. Yine transaction içinde SELECT işlemleri de yapılabilmektedir. Transaction, çalışma yapısı olarak ya bütün işlemleri gerçekleştirir ya da hiçbirini gerçekleştirmez. İşlemlerden biri başarısız olursa, hiçbir işlem gerçekleşmez; ancak tüm işlemler başarılı olduğunda  Transaction, içinde gerçekleşen tüm veri değişikliklerini onaylamış demektir.  

Transaction bloğundaki işlemlerin hepsi başarılı olduğunda Transaction Commit (Onaylama) komutu çalışır ve değişiklikler veritabanında gerçekleşmiş olur. ancak bir hata varsa işleyiş bozulur ve Transaction Rollback (Geridönüş) komutu çalışır, bu şekilde tüm işlemler geri alınır ve en başa dönülür. Böylece veri kaybına karşı bir çeşit koruma mekanizması oluşturulmuş olunur.

Transaction  Nerde ve Ne Zaman Kullanırız
Örneğin veri tabanımızdan silinen kayıtları, başka bir veri tabanına yedekliyorsak. Bir silinme ve bir kaydetme işlemi söz konusu. Bu işlemlerin sırayla gerçekleşmesi gerekiyor. Silinme işlemi başarılı bir şekilde tamamlandı. Fakat kaydetme işleminde bir hata meydana geldi. Bu hata yetersiz hafızadan kaynaklanabilir, sistem işlem sırasında yeniden başlatılmıştır veya fiziksel bir arıza nedeniyle kapanmıştır. Bu nedenler yüzünden silinmiş kaydımıza elveda demek yerine, böylesi sorunlarla karşılaşma ihtimalimize karşı önlemimizi almamız gerekir. Çalışmasını istediğimiz kod bloğunu "transaction" bloklarına alırız ve sorun çözülmüş olur.

Şimdi örnekle konuyu pekiştirelim.

Örnek: Bir banka sisteminde para havale etme işlemi için örnek bir transaction tasarlayalım. Öncelikle aşağıdaki gibi bir "HESAP" tablosu oluşturalım ve tablomuzda müşterilere ait HESAP_ID, AD, SOYAD, HESAP_NO, BAKIYE bilgilerini tutalım. 
CREATE DATABASE BANKA
USE BANKA

CREATE TABLE HESAP
(
HESAP_ID INT PRIMARY KEY IDENTITY (1,1) NOT NULL,
AD       VARCHAR(30) NOT NULL,
SOYAD    VARCHAR(30) NOT NULL,
HESAP_NO INT         NOT NULL,
BAKIYE   INT         NOT NULL
)

Oluşturmuş olduğumuz "HESAP" tablomuza örnek kayıtlar girelim.
INSERT INTO HESAP VALUES('İBRAHİM','BAYRAKTAR',19265,7000)
INSERT INTO HESAP VALUES('SAMET','ULUTURK',19572,10000)
INSERT INTO HESAP VALUES('RAMAZAN','PINARBAŞI',19752,9500)
INSERT INTO HESAP VALUES('RAŞİT','BAKIR',19912,17000)

"Samet ULUTURK'ün hesabından, İbrahim BAYRAKTAR'ın hesabına 1000 TL havale yapılsın." Bu işlem için izleyeceğimiz algoritma Samet ULUTURK'ün bakiye bilgisini 1000 azaltmak ve İbrahim BAYRAKTAR'ın bakiye bilgisini 1000 artırmak olacaktır.
UPDATE HESAP SET BAKIYE = BAKIYE - 1000 --1.Sorgu
WHERE AD='SAMET' AND SOYAD='ULUTURK'

UPDATE HESAP SET BAKIYE = BAKIYE + 1000 --2.Sorgu
WHERE AD='İBRAHİM' AND SOYAD='BAYRAKTAR'
Havale işleminin gerçekleşmesi için bu iki sorgunun aynı anda gerçekleşmesi gerekir ve sistem kullanıcısı bu iki sorguyu birden çalıştırıyor. Şimdide örnek işlemimizde oluşabilecek olası hata senaryolarını inceleyelim.

Hata Olasılığı 1: Birinci SQL sorgumuzun çalışması fakat ikinci SQL sorgumuzda hata oluşması. Bu durumda Samet ULUTURK'ün hesabından 1000 TL eksilme olacak fakat İbrahim BAYRAKTAR'ın hesabında herhangi bir değişiklik olmayacaktır.

Hata Olasılığı 2: Birinci SQL sorgumuzda hata oluştu ve ikinci SQL sorgumuzun çalışması durumunda Samet ULUTURK'ün hesabından herhangi bir eksilme olmayacak fakat İbrahim BAYRAKTAR'ın hesabına 1000 TL eklenecek.

Örneğimizdeki gibi problemlerin ve olası hatalardan oluşacak karmaşanın önüne geçmek için  "transaction" yapısını kullanmalıyız. "transaction" sayesinde her iki sorguda birden çalıştıralacak, iki sorguda başarılı ise "transaction" onaylanacak fakat herhangi bir hata durumunda he iki sorguda iptal edilecek.

"transaction" yapısını SQL kodlarında kullanırken COMMIT ve ROLLBACK komutları kullanılır.

COMMIT komutu ile çalıştırılan tüm SQL komutlarının başarılı olması halinde işlemler veri tabanına yansıtılır. ROLLBACK komutu ise herhangi bir hata oluşumunda tüm işlemleri geri alır. 

Transaction  Oluşturalım
BEGIN TRANSACTION
BEGIN TRY

UPDATE HESAP SET BAKIYE = BAKIYE - 1000
WHERE AD='SAMET' AND SOYAD='ULUTURK'

UPDATE HESAP SET BAKIYE = BAKIYE + 1000
WHERE AD='İBRAHİM' AND SOYAD='BAYRAKTAR'

COMMIT
END TRY
BEGIN CATCH
ROLLBACK
END CATCH

"BEGIN TRANSACTION" ile "transaction" işlemini başlatıyoruz. Tek bir komut gibi çalışmasını istediğimiz SQL kodlarımızı yazdıktan sonra  "transaction" işlemini "COMMIT" ile sonlandırıyoruz. "COMMIT"  komutuna gelene kadar işlemde hata olsa da olmasa da, işlem sonuçları tablomuza yansımayacaktır. "END TRY" ile blogumuzu kapatıyoruz. İşlemde bir hata ile karşılaşılması durumunda "BEGIN CATCH" blogu devreye girecek ve "ROLLBACK" komutu ile yapılan işlemler geri alınacak.

Java Dizi Örnek

Klavyeden girilen N elemanlı bir dizinin;
  • Dizi elemanları toplamı
  • Dizi elemanları ortalaması
  • Dizi elemanları arasındaki maksimum değerin bulunması
  • Dizi elemanları arasındaki minimum değerin bulunması
  • Dizi elemanlarının küçükten büyüğe sıralanması
  • Bubble Sort (Kabarcık Sıralama) Algoritması
package DIZILER;
import java.util.Scanner;
public class DIZIORNEK {

public static void main(String[] args) {
  
int n, toplam, max, min;
min=max=toplam=0;
Scanner oku = new Scanner(System.in);
System.out.println("ELEMAN SAYISINI GIRINIZ:");

n=oku.nextInt();
int dizi[]=new int[n];
for(int i=0;i<dizi.length;i++) //Dizi elemanları toplamı
 {
    System.out.println((i+1)+"....SAYISINI GIRINIZ:");
    dizi[i]=oku.nextInt();
    toplam+=dizi[i];
 }
    int ort=toplam/n; //Dizi elemanları ortalaması
    for (int s=0;s<dizi.length;s++) //Dizi elemanları arasındaki maksimum değerin bulunması
 {
    if(dizi[s]>max)
   {
      max=dizi[s];
          }
 }
    min=dizi[0]; //Dizi elemanları arasındaki minimum değerin bulunması
    for(int a=0;a<dizi.length;a++) 
 {
         if(min>dizi[a])
    {
  min=dizi[a]; //Dizi elemanlarını küçükten büyüğe sıralanması
    }
 }
    int tut=0;//Bubble Sort - Kabarcık Sıralama Algoritması 
    for(int k=0;k<dizi.length-1;k++)
 {
  for(int y=0;y<dizi.length-1;y++)
         {
  if (dizi[y]>dizi[y+1])
     {
  tut=dizi[y];
  dizi[y]=dizi[y+1];
  dizi[y+1]=tut;
     }
  }
 }
 
System.out.println("DIZI ELEMANLARININ TOPLAMI="+toplam);
System.out.println("DIZI ELEMANLARININ ORTALAMASI="+ort);
System.out.println("DIZI ELEMANLARININ MAXIMUM DEGER="+max);
System.out.println("DIZI ELEMANLARININ MINIMUM DEGER="+min);

for(int b=0;b<dizi.length;b++)
{
 System.out.println((b+1)+"ELEMANIN DEGERI"+dizi[b]);
}

}}

5 Kasım 2014 Çarşamba

Bat Dosyası ile Bir Klasörü Otomatik Sıkıştırmak

Aşağıda verdiğim komutları bat dosyası haline getirin ve ilgili alanları düzenleyin.

C:\PROGRA~1\WinRAR\WinRAR.exe a -r -M1 -MD4096 -ibck -Y -O+ -ac -ep1 -ag+YYYYMMDD-HHMI "C:\AlinanYedek.rar" "C:\alinacak_klasor "
close

AlInacak Klasör: Hangi klasörü yedekliyorsanız onu yazın. Mavi ile işaretlediğim alan yedeğin nerede tutulacağı ve ilgili parametreleri düzenleyebilirsiniz. Tüm parametreler aşağıda. Daha sonra bu bat dosyasını Görev zamanlayıcıdan "Temel Görev Oluştur" kullanarak otomatik çalıştırabilirsiniz.

Commands:
a add files to an archive
c add an archive comment
d delete files from an archive
e extract files from an archive, ignoring paths
f freshen files within an archive
i find string in archives
k lock an archive
m move files and folders to an archive
r repair a damaged archive
rc reconstruct missing volumes
rn rename archived files
rr[N] add data recovery record
rv[N] create recovery volumes
s[name] convert an archive to a self-extracting type
s- remove SFX module
t test archive files
u update files within an archive
x extract files from an archive with full paths

3 Kasım 2014 Pazartesi

WampServer Üzerinde Phpmyadmin "root" Parolasını Değiştirmek

WampServer'ın kurulu olduğu dizinden \wamp\apps\phpmyadmin\config.inc.php yolunu izleyerek config.inc.php dosyamızı editörümüzle açıyoruz;


parolamızı değiştirdikten sonra dosyamızı kaydedip kapatıyoruz. Ardından WampServer üzerinden Restart All Services tüm servisleri yeniden başlatıyoruz.

2 Kasım 2014 Pazar

SQL'de Türkçe Karakter Sorunu Nasıl Çözülür?

Eğer bir database tanımlaması düzgün yapılandırılmadıysa yeni oluşturduğunuz veya taşıdığınız veritabanındaki içeriklerde bulunan türkçe karakterler bozulabilir. Bunun nedeni veritabanını oluştururken seçmemiş olduğunuz veya default kalan "collation" ayarıdır. Eğer default değeriniz türkçe değilse tanımlama bozuk olacaktır. 

Bu sorunu düzeltmek için ne yapabiliriz?

Yeni bir veritabanı oluştururken ya da veritabanı taşırken yeni ekranında sol tarafta bulunan "Options" sekmesinde açılan "collation" öğesini "TURKISH_CI_AS" olarak seçmelisiniz.


"collation" değerini "TURKISH_CI_AS" olarak değiştirirseniz tanımlama anlamında herhangi bir karakter sorunu yaşanmayacaktır.

Varolan bir veritabanının tanımlama dilini kontrol etmek isterseniz. Object Explorer üzerinde kontrol etmek istediğiniz veritabanına sağ tıklayın. "Properties" seçin. Açılan "General" sekmesinde sağ tarafta altta Maintenance başlığında "Collation" kısmı bulunmaktadır. 

Modernlik ve Postmodernlik - Zygmunt BAUMAN

FELSEFE Ders Notları 3
Çağdaş Sosyoloji Kuramları
Modernlik ve Postmodernlik - Zygmunt BAUMAN

Siyasal, sosyal ve kültürel konularla ilgili çok sayıda kitap ve makale yazan Bauman'ın ilgilendiği temel konuların başında "modernlik" ve "postmoderlik" meselesi gelmektedir. Modernliğe yönelttiği eleştiriler, postmodernliğe yaklaşımı onu meslektaşlarından ve çağdaşlarından çok farklı bir konuma yerleştirmektedir. Çünkü modernliğe yönelttiği eleştirilerin temelinde, kendisinin eşi Janina'nın yaşam öyküsünün, dolayısıyla  da II. Dünya savaşı sırasında yahudilere uygulanan soykırımın önemli bir yeri ve etkisi bulunmaktadır. Modernliğe yoğun eleştirilerde bulunan Bauman, günümüzde yaşanan dönemin postmodern bir dönem olduğunu belirtir.

"Postmodernlik ve Hoşnutsuzlukları" adlı eserinde Anthony Giddens'ın "geç modernlik", Ulrich Beck'in "düşünümsel modernlik", George Balandier'in "modernlik ötesi" olarak isimlendirdiği, kendisinin ise diğer pek çok kişiyle birlikte "postmodern" olarak adlandırdığı bir zaman diliminde ve kendi dünyamızda yaşadığımızı ifade etmektedir. Bauman, her ne kadar çalışmalarında kendisini konumlandırdığı noktayı tam olarak belirtmesede  Dennis Smith (1999) onu postmodernitenin peygamberi olarak ilan etmiştir.

Bauman'a göre Holocaust, gerçekten bir Yahudi trajedisi idi. Ama Holocaust salt bir yahudi sorunu değildi. Holocaust,  modern akılcı toplumda, uygarlığın yüksek sahnesinde ve insanoğluğunun kültürel zaferinin zirvesinde doğmuş ve uygulanmıştır. Dolayısıyla ona göre Holocaust bu nedenle toplumun, uygarlığın ve kültürün sorunudur ve araştırılması gerekir.

Modernliğin karanlık yüzü olarak gördüğü Holocaust kavramını; Bauman kullanmıştır. "Modernlik ve Holocaust" adlı kitap Zygmunt BAUMAN'a aittir.

Zygmunt BAUMAN modernliği 17.yüzyılda batı avrupada başlayan, Aydınlanma, Kapitalizm ve Komünist endüstri toplumunun gelişimini de kapsayan tarihsel bir dönem olarak tanımlar.

Modern düşüncenin dünyanın değiştirilebileceği fikriyle doğduğunu ileri süren Zygmunt BAUMAN'ın modernlik ayrımları arasında toplumsal ve psişik yer alır.

"Modernliğin Sosyolojisi" isimli kitap Wagner'e aittir.

Zygmunt BAUMAN'a göre bir düzen rüyasına sahip olan modernite düşüncesine kontrol etme, düzenleme ve sınıflandırma takılmıştı. 

Zygmunt BAUMAN modernliği bahçe kültürüne benzetmiştir.

"Irkçılık; modern bilim, teknoloji ve devlet gücünün  modern birimleri tarafından üretilir" görüşü Zygmunt BAUMAN'a aittir.

Zygmunt BAUMAN'ın modernliğe yönelttiği eleştirilerin temelinde yatan esas nedenlerden biri: Modernliğin "farklılığı" bir suç olarak görmesidir. Modernite doğruluk, adalet ve akıl için evrensel olarak uygulanabilir standartlar belirleme ve sınıflandırma yoluyla düzen yaratma faaliyetine girmiş, bu bağlamda göreceliği, belirsizliği ve muğlaklığı bastırmaya çabalamış, farklılığı da bir suç olarak görmüştür.

Müphemlik kavramını Zygmunt BAUMAN kullanmıştır. Zygmunt BAUMAN'ın görüşleri arasında 16.yüzyılın sonuna doğru ahenkli ve yekpare dünya tablosunun Batı Avrupa'da dağılmaya başladığını  ileri sürer. Müphemliği düzensizlik ve kaos anlamında kullanır. Modernliğin farklılığı bir suç olarak gördüğünü ifade ederek modernliğin düzen arama arayışını eleştirir.

Zygmunt BAUMAN'a göre postmodern dönem, modern dönemin sonu anlamını taşımaktadır. Postmodernliği dünyanın "yeniden büyülü hale getirilmesi" olarak değerlendiren sosyolog'dur.

Zygmunt BAUMAN'ın postmodernizm ile ilgili söyledikleri: Postmodernlik illa da modernliğin reddi, itibarsızlaştırılması değildir. Posmodernizm değişme gereksinimi hisseden modernlikten başka bir şey değildir. Rüştüne ermiş modernliktir. Kendi imkansızlığını kabul eden modernliktir.

Evrensel ve sarsılmaz temellere sahip, kusursuz etik kod hiçbir zaman bulunmayacaktır, müphem olmayan ahlak, evrensel olan ve "nesnel temellere dayanan" bir etik, pratik olarak imkansızdır.

Zygmunt BAUMAN'ın Eserleri: 
  • Küreselleşme, Toplumsal Sonuçları
  • Parçalanmış Hayat
  • Modernlik ve Müphemlik
  • Postmodern Etik
Zygmunt BAUMAN, postmodern koşullar altında bireylerin esas olarak tüketici/oyuncu olarak inşa edildiklerini ileri sürmektedir.

Zygmunt BAUMAN'a göre modernlikten posmodern döneme geçişin altında yatan en önemli nedenler: Bireyin toplumsal olarak inşa biçimde, kitlelerin toplumsal olarak bütünleştirilmesinde, sistematik yeniden üretim sürecinin yapıştırılmasındakiderin değişiklikte yer alır.

Küreselleşme fikrinden çıkan en derin anlam dünya meselelerinin belirsiz, kuralsız ve kendi başına buyruk bir doğasının olmasıdır.

Zygmunt BAUMAN'a göre modern koşullarda yaratılan bireyin sahip olduğu özellikler:
  • Modern koşullarda inşa edilen bireyler disiplinli aktörlerdir.
  • Modern koşullarda bireyler üretici asker olarak inşa edilmektedirler.
  • Modern koşullarda bireyler eş güdümlü baskıya tabi tutulduğunda monoton davranabilen aktörlerdir.
  • Modern koşullarda bireyler yalnız başlarına tamam olmayan anlamlı bütünler oluşturabilmeleri için öteki birimlerle birleşmesi gereken şeylerdir.
Zygmunt BAUMAN'a göre bütünleşmenin ve parçalanmanın birlikte yaşadığı sürece küreselleşme denir.

Küreselleşme ile ilgili düşünceleri: Küreselleşme birleştirdiği kadar da bölmektedir. Yerkürenin tek tipliliğini artıran nedenlerle bölen nedenlerin özdeş olduğunu ileri sürer. Bazıları için küreselleşme olarak görülen şey bazıları için yerelleşme olarak görülür. Bazıları için yeni bir özgürlüğün emaresi olan şey başkalarının üzerine davetsiz ve kötü bir kader olarak çullanmaktadır.

Zygmunt BAUMAN'a göre Postmodern koşullarda yaratılan bireyin sahip olduğu özellikler:
  • Yaratıcı
  • Yeni deneyimler arayan
  • Kendi kendisini güdüleyen
  • Uygunluk ve formunu koruma

Postmodern Sosyal Teori

FELSEFE Ders Notları 3
Çağdaş Sosyoloji Kuramları
Postmodern Sosyal Teori

Postmodernizm, modern kültürel ürünlerden farklı olarak sanatta, filmlerde, mimaride ve benzeri alanlardaki kültürel ürünleri ifade eder. Posmodernite ise tarihsel anlamda modern dönemi izlediği düşünülen sosyal ve politik çağı betimler. Dolayısıyla, Posmodern oluşumlarla ilgili önemli nokta modernitenin bittiği ve postmodern çağın başladığı düşüncesidir.  

Posmodernizm nedir? sorusuna verilecek en temel yanıt modernizmin radikal bir biçimde eleştirisidir.

Öte yandan Fredric Jameson, günümüzün hakim eleştirel ve biçimsel ideolojik paradigması olan postmodern düşüncenin bir yenilik olarak estetiği, kendi ekseni etrafında döndürerek ve dönüşümler geçirerek bir yenileme yolu arama zorunda olduğunu belirtir. Bu ise "modern kalarak postmodernizme dönüşmeye çalışan modernizm" anlamına gelir. Jameson'ın bu yorumu modernizmin kendi içinde biz çözülme yaşadığı yönündedir.

Modernizmin köküne bakıldığında Fransız Devrimi, Aydınlanma Düşüncesi, bilimsel gelişmeler ve Sanayi devrimi görülmektedir.

Postmodernizm kavramı 1950 ve 1960'lardan itibaren birçok yazar tarafından kullanılmaya başlanmıştır.

Bugün, postmodernizmin merkezinde yer alan bazı temaların modası geçmiş olduğu ifade edilmesine rağmen birçok entellektüelin zihnini meşkul ettiği açıktır. Bu temalar; öznenin ölümü ve dönüşü, temsilin reddi ve kamusal alanın çöküşü, bireycilik, bireyin kimliği, anti-hümanizm, Heidegger ve Nietzsche felsefesi, nihilizm ve Paris 1968 geleneği olarak sıralanmaktadır.

Modernleşme varlığını sürdürmek için kapitalizm, ulus devlet, kentleşme ve pozitivizm gibi unsurları dayanak olarak kullanır. 

Aydınlanma, bir ütopya olarak insanın özgürleşmesi ve yücelmesi amacını taşımaktadır. Aydınlanma düşüncesi 17. ve 18. yüzyıllarda Batı Avrupa'da yayılan bir felsefi akıma işaret eder. Aydınlanma akımı yapısında eşitlik, özgürlük, insan aklına duyulan güven, bilim ve ilerleme barındırır.

"Akıl Tutulması" kavramını Horkheimer kullanmıştır.

Postmodern kuramcıların Aydınlanma dönemine yaptığı eleştiriler: Aydınlanmanın aklı getirdiği nokta, bireyin slinişi biçiminde olmuştur. Aydınlanmanın aklını mit olarak nitelemişlerdir. Aklın toplumda çatışan çıkarlara hizmet ettiğini belirtmişlerdir. Aklın araçsal boyutunun geliştiğini  ve yeni bir egemenlik biçimini gerektirdiğini ifade etmişlerdir.

Nietzsche'e göre aydınlanma projesi iyimser öncüllerin aksine bir yabancılaşmanın, acımasızlığın ve vahşetin egemen olduğu bir biçime dönüşmektedir.

Geneloji, herhangi bir nesneyi kaynağından alıp tarih akış sürecinde nasıl değiştiğini inceleme anlamına gelmektedir.

Nietzsche aydınlanmanın akıl, bilim ve ilerleme anlayışlarına eleştiriler yöneltmiştir.

Sanatta postmodern anlayış, ilk kez 1960'larda New York sanat çevrelerine  modern sanatın karşıtı olarak girmiş ve sanatta yeni bir postmodern estetik anlayış döneme hakim olmaya başlamıştır.

Modern Sanat anlayışının özellikleri:  Özgürlük ve özgünlük, yansıma ve misyon, kütür ve sanat ürünlerinin metalaşması, seçkin olması.

Postmodern Sanat estetiğinin özellikleri:
  • Estetik ölçüde sanatçının kendi için bilincini, topluma göre daha çok ön planda tutmaktadır.
  • Sanatçının topluma karşı bir misyon ve anlatısı bulunmamakta, bunun yerine montaj ve eklemleme geçmektedir.
  • Gerçek açık uçlu olarak bırakılmakta ve gerçekliği yansıtmak yerine belirsizlik ve kararsızlık önem kazanmaktadır.
  • Bireyin bütünleşmiş kişiliği ve tutarlı olması değerleri bir tarafa bırakılarak hümanist değerlerden arındırılması öncelenmiştir.
  • Posmodernizmde yüksek sanat ve kitle sanatı ayrumu yadsınarak taklit ve yapıştırma teknikleri ile sanat yapıtının üretimi esas alınmıştır.
Postmodernistler modern sanat ve estetik ölçütlerine iki eleştiri getirmektedirler: Birincisi sanat yapıtının misyonu olması, içinde bulunulan durumu eleştirerek çıkış yolu aramasıve geçmişten kopmuş bir yeniyi inşaya kalkışması olarak değerlendirilmektedir. İkincisi, modern sanatın seçkinci anlayışına yönelttikleri eleştirilerdir.

Ziyouddin Serdar'ın postmodernizm ilkeleri arasında şunlar vardır:
  • Modernizmde geçerli olan her şeyin  postmodern zamanda tümden geçersiz ve eskimeye yüz tutmuş olması
  • Gerçekliğin reddedilmesi
  • Elimizde olan gerçeklik yerine imgeyle maddi gerçekliğin arasında kaybolmuş olan dünyanın olması
  • Çoklukla ve çeşitlilikle ilgilenmesi
Modernizm ve Postmodernizm karşılaştırmaları arasında şunlar yer alır: 
  • Modernitenin romantik ve iyimserliği postmodernitede toplumsal sorunları kapsayan ve dadaist anlayışıyla kendini göstermektedir.
  • Modernizmde her şeyn rasyonel ölüler içinde yürütülmesi düşüncesi, postmodernizmde aklın tükenmişliği olarak yorumlanır.
  • Modernizmde toplumsal mesafeler önemli iken, postmodernizmde konumların belirsizliğine dikkat çekilir.
Posmodernizm denince akla ilk gelen düşünürlerden biri olan Lyotard'ın postmodernizme ilişkin görüşleri çoğunlukla "Postmodern Durum" adlı kitabında bulunabilir.

Toplumların bilginin konumunun değiştiğinden söz eden  düşünür Jean Francois Lyotard

Lyotard'ın Ayrımları:
  • Temel iddiaları meşrulaştırmak üzere  üst anlatılara başvurulması
  • Meşrulaştırmanın kaçınılmaz doğal sonucu olan gayri meşru kılma,
  • Dışlama homojen epistemolojik ve ahlaki reçetelere duyulan arzu.
Jean Francois Lyotard toplumların postmodern çağa girmeleri ile birlikte bilginin konumunun değiştiğinden söz eder. Son kırk yıl içerisinde bilim ve teknoloji, dil ve bilgi üzerinde yoğunlaşmıştır. Bilgisayar dilleri, iletişim teknolojileri, bilgi depolama ve veri bankaları bunun örnekleridir. Bu teknolojik dönüşümlerin bilgi üzerinde önemli etkileri olduğu söylenebilir. Araştırma ve öğrenilmiş bilginin aktarımı  bu etkilerin yaşandığı başlıca işlevlerden ilk ikisidir. Birincisi araştırma, ikincisi öğrenmedir.

Dolayısıyla bilgisayar çağındaki bilgi sorunu günümüzde her zamankinden çok daha büyük ölçüde  yönetim sorunudur. Bu bağlamda düzenlemenin, yani yeniden üretim işlevlerinin yöneticilerden geri alınarak makinalara emanet edildiği ve bundan böylede hep edileceği öne sürülmektedir. Günümüzde gittiçe önem kazanan soru; makinalara ilişkin alınan bu kararların doğruluğunun garantisini kimin verebileceği sorunudur.

Bilginin biçimininde  giderek değişmesi sonucunda postmodern çağ içinde bilgi satılmak için üretilmekte ve tüketilmektedir. Bilgi kendinde bir amaç olmaktan uzaklaşmakta ve artık kullanım değerini kaybetmektedir.

Postmodernizmi en iyi açıklayan ifade: Modernizme meydan okumasıdır.

Bilişsel Haritalama Kavramı : Jameson tarafından kullanılmıştır.

Jameson'un postmodernizm teorisi olan  geç kapitalizm, Ernest Mandel'in teorisine dayanır. Geç Kapitalizm, kapitalizmin üçüncü aşaması olan çok uluslu kapitalizme  denk düşer.

"Dünya çılgın bir seyir aldığına göre, biz de dünyaya ilişkin çılgın bir bakış açısı edinmeliyiz" Kötülüğü Şeffaflığı'nın girişinde yazan bu sözler; Baudrillard'a aittir.

Modernlik ve Demokrasi - Alain Touraine

FELSEFE Ders Notları 3
Çağdaş Sosyoloji Kuramları
Modernlik ve Demokrasi - Alain Touraine

Alain Touraine günümüzün önde gelen toplumbilimcileri ve demokrasi kuramcıları arasında yer alır. Sosyoloji literatüründe yoplumsal hareketler sosyologu olarak anılır. Touraine'in bu sıfatla temayüz etmesi onun 1968 öğrenci hareketleri üzerine incelemesi ile başlayan, Polonya'daki sosyalist rejimin çöküşünü hazırlayan Dayanışma Hareketi ve Fransa'da nükleer karşıtı hareket üzerine incelemeleri ile devam edip, bundan böyle gündeminden hiç düşmeyecek olan diğer çalışmaları ile alakalıdır.
Bu diğer çalışmalardan biri olan "The Return of the Actor (Aktörün Dönüşü ) 1988" onun modernlik, demokrasi ve toplumsal hareketler arasındaki ilişkilerin sistematik bir çözümlemesi yönündeki önemli bir aşamayı, daha sonraki ayrıntılı çalışmalarının adeta bir taslağını oluşturmaktadır.
Touraine'e göre (1971), sanayi sonrası toplum ya da programlanmış toplum sanayi toplumundan daha fazla iktisadi büyümeye odaklanmıştır ve sanayi toplumunun sahip olduğundan çok daha fazla yatırım kabiliyetine sahiptir.

Touraine'in sanayi sonrası toplum tezine göre 1970'lerden itibaren sanayi toplumunun yerini bilgi ve teknolojinin önemli hale geldiği sanayi sonrası bir toplum almaya başlamıştır. Sanayi sonrası toplumun en önemli özelliği bilgi teknolojisi kullanımının sağladığı denetim gücüdür.

The Return of the Actor çalışmasında toplumsal hayatın merkezinde üç unsurun yer aldığını belirtir.
  • Örgütlenmiş uygulamaların birbirinden uzaklaşması ve bir bilinç olarak özne,
  • Merkezi toplumsal çatışmaların konusu olan bilişsel, iktisadi ve etik kültürel modeller (tarihsellik)
  • Bu kültürel modellere toplumsal bir biçim vermek için birbirleri ile mücadele eden toplumsal gruplar olarak toplumsal hareketlerdir.
Touraine'e göre modern toplumların en temel sorunu toplumsal birlik ve dayanışma içinde kültürel çeşitliliğin nasıl sürdürülebileceği sorunudur. 

Kolektivizm  terimi en yaygın kullanımıyla, üretim ve dağıtım araçlarının komünal (ortak) ya da devlet mülkiyetinde olmasını teşvik eden siyasal ya da sosyo-ekonomik kuram ve uygulamaları anlatır.

En temelde modernlik, "Akıl ile Özne, akılcılaşma ile ferdiyet kazanma, Rönesans'ın ruhu ile Reformasyon'un ruhu ve bilim ile özgürlük arasındaki gergin bir ilişkidir."

Kültürel Demokrasinin Amaçları
  • Ekonominin üzerindeki toplumsal ve siyasal kontrolü azaltmak
  • Herkese eşit toplumsal ve kültürel hak garanti etmek
  • Üretim ve yönetim sistemlerinin teknik akıcılığına sahip tüketicilerin sağlık, eğitim, bilişim alanlarındaki taleplerini dikkate almak
Touraine'in nazarında, demokrasi fikrinde hiçbir ilke devlet gücünün temel haklara saygı talebi tarafından sınırlanmasından daha merkezi bir öneme sahip değildir. 

Totoliteryenlik Kavramı: Halkın bütünüyle ya da hemen neredeyse  bütünüyle devlet tarafından tahakküm altına alındığı bir atıfta bulunur.

Otoriteryenlik Kavramı: Bireylere yada gruplara karşı keyfi uygulamalara yönelebilen bir siyasal yetki biçimine atıfta bulunur.

Touraine'nin 1970'lerden itibaren sanayi toplumunun yerine bıraktığı toplum programlanmış toplumdur.

Touraine toplumsal değişim süreçlerine aktif olarak katılacak bir eylemci sosyoloji önerir.
Touraine göre, özne, özgürlük demektir.

Touraine Demokrasi ile ilgili şunları söyler:
  • Demokrasi bir dizi kuramsal garanti ya da menfi özgürlükler değildir. 
  • Demokrasi özne siyasetidir; öznenin var olabilmesinin ön şartıdır. 
  • Demokrasinin büyük görevi kitle  kültürü için de çeşitlilik üretmektedir.
En temelde öznelerin, kendi kültürleri ve özgürlükleri bağlamında sistemlerin mütehakkim mantığına karşı yürüttükleri savaş  ya da özne siyaseti, demokrasinin var olabilmesinin koşullarını yaratma ve sürdürme siyasetidir.
 
Touraine göre özgürlük arzusu bireyliği, kültürel kimlik özelciliği (particularism) ve akıl ise evrenselliği temsil eder.

Touraine göre demokrasinin boyutları: Temel Haklara Saygı, Vatandaşlık, Siyasal liderlerin temsil edilebilirliği,

Toplumla İlgili Hareketler: Toplumsal, siyasal veya kültürel bakımdan müspet amaçlara sahip olan ve ahlaki bir çağrıyı toplumsal olarak tanımlanmış bir toplumsal aktör ile diğeri arasındaki açık bir çatışma ile birleştiren hareketlerdir.

Tarihsel Hareketler: Egemen sınıfa değil, seçkin bir gruba meydan okuyan ve halkı devlete karşı harekete geçirmeye çalışan hareketlerdir.

1973 tarihli bir çalışmasında, kendi tabiriyle "toplum sosyolojisi yerine aktörler sosyolojisini"  koyacak ve böylece sosyolojide mevcut olan nesnel-öznel ya da sistem-eylem kuramları şeklindeki yanlış bölünmeyi aşacak yeni bir kuram geliştirmeye çalışır.

İktisadi bir doktrin olarak liberalizm serbest ticari ve ekonomide bireysel girişimcilikte devlet müdahelesinin olmaması gerektiği anlamına gelen laissez-faire (bırakınız yapsınlar) düşüncesini savunur. Kültürel bir doktrin olarak liberalizm hoşgörüyü ve akılcılığın çeşitli oluşunu savunur. 

Cemaatçilik klasik liberalizm ile kolektivizm arasında bir orta yol bulmaya çalışan bir toplumsal kuramdır. Cemaatçiler hem klasik liberalizmin aşırı bireyciliğine hem de kolektivizmin aşırı toplumculuğuna karşı çıkarlar.

Touraine temel bölünmenin ve çatışmanın artık üretim araçlarının mülkiyeti ve denetiminden kaynaklanmadığını, aksine bilgiye erişme ve kullanma gücünden kaynaklandığını savunur.

Modernleşmeyi çok genel hatları ile tarım toplumundan sanayi toplumuna geçiş olarak ifade etmiştir.

Taouraine sosyologların toplumsal değişim hareketlerini, onların içinde doğrudan yer alarak inceledikleri "sosyolojik müdahalecilik" yöntemini önerir.

Touraine göre  Rönesans'tan Fransız Devrimi ve büyük ölçekli sanayileşmeye kadar olan dönem klasik modernliğin aşamasıdır.

20.yüzyılın faşist ve sosyalist rejimleri totoliteryen rejimlerin örneklerini teşkil ederler.

Sanayi Sonrası Toplum - Daniel BELL

FELSEFE Ders Notları 3
Çağdaş Sosyoloji Kuramları
Sanayi Sonrası Toplum - Daniel BELL

İçinde bulunduğumuz çağın, tanık olduğumuz toplumsal değişmenin niteliklerini belirlemek oldukça zor görünmektedir. Bugüngen geçmişe baktığımızda sosyolojinin gelişmesine neden olan sanayi devrimi ve sanayi toplumunun yarattığı dönüşümleri anlamak için sosyolojinin kurucu isimlerinin sosyoloji teorilerini anlamaya ve yorumlamaya çabalarken eksiklerini ve eleştirilebilecek yanlarını tesbit edebilmek kimi zaman eğlenceli bir uğraş halinede gelebilmektedir. Öte yandan kurucu sosyologların en önemli özellikleri içinden geçtikleri olağanüstü değişim ve dönüşüm dönemine karşın bugüne dek kalıcılığını koruyabilen çalışmalar ortaya koyabilmiş olmalarıdır. Zamana karşı direnen klasikleşmiş çalışmaların odak noktası ise sanayi devriminin ortaya çıkardığı sanayi toplumunun neden olduğu toplumsal değişimlerdir.

Daniel BELL'in Sosyolojisi
Daniel Bell'in sosyolojisinin temel amacı "kuramdan çok toplumsal çözümlemeye" ağırlık vermesidir. Sosyolojide varolan bir yaklaşımı temsil eden bu tarz toplumsal önkestrim (social forecasting) olarak adlandırılmaktadır. Toplumsal önkestirim, klasik sosyoloji perspektifinin bir parçası olan makro kuramsal perspektif ile günümüz koşullarını dile getiren, yenilenmiş "uygun" ve "kullanışlı" bir sosyoloji ilgisini harmanlar. Bell toplumsal olayların ve olguların tahmin edilmesiyle önkestirimi birbirinden ayırır.  Ona göre tahmin olayların sonuçları ile ilgilenirken, toplumsal önkestirim tarihsel eğilimler dizgesinin olasılıklarının ana hatlarını çıkarmaya çalışır. Daniel Bell için sosyolojik kuram, toplumsal yapı içindeki kalıpları (patterns) ve bu yapının sözkonusu olduğu değişimleri tanımlamakla yükümlüdür. Kuram, toplumsal eğilimleri önkestirebilecek kapasitede olmalıdır. Bell, 1950'lerde ortaya çıkıp  R.Aron ve J.K.Galbraith gibi önemli isimler tarafından benimsenen yakınlaşma (convergence) teorisinin önde gelen temsilcilerinden biri olarak kabul edilmektedir. Yakınlaşma teorisine göre toplumsal organizasyonların teknik ve ekonomik zorunlulukları toplumsal yapının biçimlenmesinde siyasal  ideolojilerden çok  daha etkilidir.

Daniel Bell sosyolojinin belli oranda geleceğe dönük çıkarımlarda  bulunmasının sosyal bilimsel, olgusal temelleri olması gerektiğini ve geleceğe dönük dayanıksız çıkarımlardan ayrı değerlendirilmesi gerektiğini ile sürmektedir.

Sosyoloji teorileri içerisinde Bell'i bir yere oturtmak gerekirse, geliştirmeye çalıştığı sanayi sonrası toplum kavramında ve kapitalizmin kültürel çelişkileri tezinde yapısal işlevselcilik ve çatışmacı yapısalcılığın bir karışımı olarak karşımıza çıkmatadır. Bell "kapitalizmin kültürel çelişkileri" adlı eserinde Batı uluslarının toplumsal yapılarının  ve kültürel formasyonlarının evrimini ele almış ve üretim ve tüketim alanları arasında bir ayrışma olduğunu ileri sürmüştür. Bell'e göre üretim ve tüketimin temel değerleri farklıdır.  Üretim çalışma etiğine ve tatminin ertelenmesi ilkesine dayanırken tüketim hedonizme (hazcılığa) ve kişisel tatmine dayanır. Bu argüman sosyal sistemleri nispeten sabit bir normatif çerçeve içinde bütünleşmiş sistemler olarak gören işlevselcileğe yönelik bir eleştiridir. Çünkü Bell'e göre kapitalizmin ahlaki değerleri belirsiz ve kaygandır ve böyle olmayada devam edecektir.

Daniela Bell'e göre ideoloji seküler bir dindir: Hayatın tüm yönlerini dönüştürmeye çabalayan, "tutkuyla aşılanmış" bir düşünce setidir. İdeoloji düşünceleri toplumsal hareketlere dönüştüren önemli bir işlevi yerine getirir. Bell'e göre bu konuda din çok daha etkilidir. ancak Bell bugün ideolojilerin bittiğini vurgular.

Daniel Bell'e göre sanayi öncesi toplumlarda; toplumsal yaşam birimi geniş hane yapısıdır. Bu yapı el emeğini ve çoğunlukla göreli olarak çok sayıda ev içi hizmetçi kullanımını kapsamaktadır.

Bell'e göre 19.yüzyılında başındaki sanayileşmenin ortaya çıkardığı yeni toplumsal formasyonun özelliklerini sanayi toplumu kavramını kullanarak açıklayan ilk sosyolog Saint Simon'dur.

Bilgi post endüstriyel toplumlarda gücün temel kaynağıdır.

"Sanayi sonrası toplum" kavramının yerine alternatif olarak kullanılan kavramlardan bazıları şunlardır;
  • Post endüstriyel toplum (en temel kurumu üniversitelerdir.)
  • Bilgi Toplumu
  • Kıtlık sonrası toplum
  • Network Toplumu
Daniel Bell'in sanayi sonrası toplumu değerlendirmede kullandığı temel boyutlar:
  • Hizmet Ekonomisinin oluşumu
  • Profesyonel ve teknik sınıfın üstünlüğü
  • Teorik bilginin önceliği
  • Teknolojinin Planlanması
  • Yeni entellektüel teknolojinin yükselişi
Daniel Bell'in sıraladığı önkestirim alanları: Teknolojik, Demografik, Ekonomik, Siyasi, Toplumsal

Bell'e göre İdeolojilerin bitmesinin nedenleri:
  • Sosyalist rejimlerin kendi halklarına karşı uyguladıkları şiddet içerikli baskılar
  • Kapitalist pazarın en olumsuz etkilerinin iyileştirilmesi ve refah devletinin ortaya çıkışı
  • İnsan doğasının mükemmel olduğunu vurgulayan romantik felsefelerin yerine insanlığın varoluşuna stoacı yaklaşan yeni felsefelerin ortaya çıkışı
1958'de Dawid Riesman'ın "endüstri ötesi toplumu","boş zaman toplumu" olarak adlandırılmıştır. 

Sanayi sonrası toplumun tanımlayıcı ekseni bilginin üstünlüğüdür.

Ritzer Bell'in sanayi sonrası toplumla ilgili olarak öne sürdükleri hem endüstri hem de endüstri öncesi toplumları kapsayan çok geniş bir toplumsal değişme süreciyle ilişkilendirildiğine dikkat çekmiştir.

Sanayi sonrası toplumun en temel karakteristik özelliklerinin görüldüğü alanlar: Teknoloji, Ekonomi ve Toplumsal yapıdır.

Bell'e göre post-endüstriyel toplumun endüstriyel açıdan özelliği; mal üretiminden hizmet ekonomisine geçiştir.

Bell'in çağdaşları olarak sayılabilecek isimler arasında: Thomas Kuhn, Kleinberg ve Alain Touraine yer almaktadır.

Bell'e göre sanayi sonrası toplumların önemli insanları: mühendisler, bilimadamları, teknisyenler ve entellektüellerdir.

Sanayi sonrası toplumlarda imalat sanayi yerine ticaret, finans, sigorta, gayrimenkul, bireysel ve profesyonel hizmetler ile alım satım onarım hizmetleri ve genel devlet işlerini kapsayan hizmet sektörü, toplam üretim içinde daha büyük bir paya sahiptir.

Endüstri sonrası toplumlarda öne çıkan metodolojiler: Soyut Teori Modelleri, Simülasyonlar, Sistem Analizleri

Sanayi sonrası toplumun iki temel özelliği bulunmaktadır. Bunlar;
  • Bilim ve akıl yürütmeye dayalı değerlerin rolünün toplumun temel kuramsal gereksinimleri olarak öne çıkarması
  • Kararların daha teknik bir nitelik kazanması, böylece de bilimcilerin ve ekonomistlerin politik sürecin içine daha doğrudan girmeleridir.
Bell'in "Sanayi Sonrası Toplumun Gelişi" kitabında belirttiği işevsel "situs"lar şunlardır:
  • Bilimsel
  • Tekno-Mantıksal
  • Yönetimsel
  • Kültürel
Bell'in Sosyolojisinde Kültür
20.yüzyılın ikinci yarısından itibaren kültür, değişimi teşvik etmektedir ve ekonomide bu değişim arzusunu yerine getiren bir araç haline gelmiştir. Kültürün bağımsız ve özerk bir kurum haline gelmesi Bell'e göre sosyoloji disiplini için sorun teşkil eder.

Post-endüstriyel toplumun ekonomik meselelere odaklı toplumsal yapısında rasyonalite ve verimliliğe yönelik bir ilgi hakimken kültürel alanda irrasyonel, kendini gerçekleştirme ve tatmin etme ilkeleri hakimdir. Bell, böylesi bir kültürün verimliliğin ve rasyonalitenin egemen olduğu bir toplumsal yapıya aykırı düştüğünü savunur ve bu noktada irrasyonel ve hedonistik düşüncelerle ilişkilendirdiği post-modernizmi eleştirir.

Sanayi Sonrası Toplum Teorisine yönelik Eleştiriler
Bell sadece en tepedeki yapılarla ilgilenir. Yeni bilgiden, yeni bir yönetici elitten bahseder; toplumun bütün değer sisteminin değişip değişmediği meselesi ile ilgilenmez.

Sanayileşme sonrası toplum kavramını ciddiye almak için bu meselenin de  ele alınması gerekir. Örneğin sanayileşme beraberinde aileye ilişkin ciddi dönüşümleri getirmiştir. Aileyle ilgili en belirgin dönüşüm, sanayileşmenin iş ve aile arasındaki bağı bütünüyle değiştirmesinde gözlemlenir.

İmalata dayalı üretimin yerine hizmete dayalı bir ekonominin aldığı bu yeni ekonomik yapıda, Bell, mavi-yakalıların ekonomideki ağırlığı azalırken işgücü içindeki etkinliğinin belirgin bir biçimde arttığını iddia etmektedir.

Sanayi sonrası toplum teorisine yöneltilen eleştirilerin odak noktası "sınıfsal eşitsizliğin kalıcılığı, sınıf çatışması, ekonomik kaynakların birkaç elde yoğunlaşması, beyaz yakalı işcilerin vasıfsız niteliğe ve tüm mesleklerde profesyonelleşme normunun sulandırılmasıdır."

C Programlama Yarıçapı girilen dairenin çevresini ve alanını hesaplama Örnek

#include <cstdlib>
#include <iostream>
#include <conio.h>
#define PI 3.14
int main(int argc, char *argv[])
{
using namespace std;
{
float radius;
float circum, area;
cout << "Dairenin Yaricapini Giriniz= ";
cin >> radius;
circum = 2 * PI * radius;
area = PI * radius * radius;
cout << "Dairenin Cevresi= " << circum << endl;
cout << "Dairenin Alani= " << area << endl;
getch();
}
}

29 Ekim 2014 Çarşamba

Bilginin Kaynakları Sorunu Usçuluk

FELSEFE Ders Notları 2
Epistemoloji
Bilginin Kaynakları Sorunu Usçuluk

Güvenilir ve kesin bilginin temelinde insan aklının yattığı veya gerçekliğin kavranmasının ancak akıl yoluyla olabileceği tezini ileri süren akıma usçuluk denir.

Deneyimciliğin karşıtı olan usçuluğa göre bilgimizin tek kaynağı duyu verileri veya algılar değildir. Felsefi bir görüş olan usçuluk insan aklının kendisinin bilginin temel bir kaynağı olduğunu veya bilginin ortaya çıkmasında insan aklının yapısının özsel ve şekillendirici rol oynadığını savunur.

"Akılcı" Deyimi günlük dilde sıkça dile getirilir ve "mantıklı" ,"zeka belirtisi taşıyan" ,"akla uygun yöntemler izleyen" gibi anlamlara gelir.

Usçuluk akımına göre, insan aklının kendisi bilginin temel kaynağıdır.

Nous, çağdaş dillere çevrilmesi oldukça zor bir deyimdir. "zihin", "kavrama", "sezgi" ve "akıl" olarak çevrilmiştir. Bu çevirilere bakınca "nous"un oldukça öznel bir yön içerdiği sanılabilir. 2500 yıl önce yaşamış olan Anaxsagoras, nous'un evrenin başlangıcındaki kaos'u düzenleyen ve evrenin düzen içinde bir başlangıç yapmasını sağlayan bir tür güç olduğunu düşünmüştür. 

Eski Yunan'da "nous" kavramının kullanımları:
  • Ruhun ölümsüz ve akıl içeren kısmı
  • Tanrısallığa yakın olan işlev
  • Algılanamayan maddesel güç
  • Akıl
Anaxsagoras'ın Nous'u: Ruhsal veya zihinsel olmaktan ziyade, algılanamayan maddesel bir güç veya ilke olarak tasarlanmıştı. Ona göre, görülebilen nesnelerden daha "ince" bir yapıda olan nous, başlangıçtaki işlevine ek olarak, nesnelere girerek onların devinimini veya gelişimini düzenlemekteydi. Anaxsagoras'ın temel felsefi amacının, evrenin "akılsal" yönünü açıkca ifade etmek ve evrendeki değişimlerin olanaklılığını açıklamak olduğunu söyleyebiliriz.

Platon, nous'u ruhun ölümsüz ve akıl içeren kısmı olaran tanımlamıştır.

Platon'u izleyen Aristoteles, hem sonlu hemde ölümsüz yönleri olduğuna inandığı nous'u bizim anladığımız "akıl" kavramına yakın bir şekilde ele alır ve bu kavramı "algı"dan ayırır. Aristoteles'e göre, insanlardan bulunan nous'un ölümden sonrada varlığını sürdürebilen kısmı , anlama ve bilme işlevlerini olanaklı kılar ve bizi diğer canlılardan farklı bir konuma getirir.

Modern felsefenin kurucusu olan Descartes, önde gelen usçulardandır. Pek çok usçu gibi Descartes'da insan zihninin doğum anında belli "içeriğe" sahip olduğunu düşünür. İdealarımızın bazıları algısal yollardan oluşur ancak Descartes'a göre, çok önemli bazı idea türleri deneyim yoluyla edinilemez. Tanrı ideası veya mükemmel bir daire  ideası bu türden bir bilişsel durumdur.

Descartes'a göre, algı ve matematik de dahil olmak üzere, bize en güvenilir görünen bilgi türlerinin doğruluğundan bile şüphelenme olasılığı bulunmaktadır.

Düşünme işlevi düşünen bir şeyin olmasını gerektirir. Ve bu şekilde Descartes o bilinen sloganına ulaşır: "Düşünüyorum, o halde varım." (Cogito ergo sum.). Descates'e göre insan bilgisinin en önemli unsuru budur.

David Hume'a göre, biz temel olarak iki tür  bilgi sahibi olabiliriz. Duyu verilerine dayanan deneyimsel bilgi ve mantıksal bilgi. Eğer bu doğruysa metafiziğin veya genel olarak felsefenin herhangi bir bilgi verme olasılığınınolmadığı ortaya çıkar. Bunun nedeni, felsefe yaparken kullanılan önermelerin ne dünyada gözlemlenebilen olgulara ne de mantıksal bağıntılara karşılık gelmesidir. Kant, deneyimciliğin bu yönüne karşı çıkar ve felsefenin veya metafiziğin olanaklı olduğunu savlar.

Kant'ın önerisi, daha önce denenmemiş bir "düşünsel deney" yapmaktır. Bu deney aynı Kopernik'in dünya merkezli astronomik sistem yerine güneş merkezli sistemi önermesi gibi, nesnel merkezli metafizik projeler yerine öznenin bilişsel rolünü merkeze alan bir kuramı öne sürmektir. Kant'ın devrimsel görüşüne göre bilen özge edilgen değil etkendir. Başka bir deyişle, "öznenin zihinselliği" bizim neyi nesne olarak aldığımız ve bildiğimiz konusunda belirleyici rol oynar. Bu anlamda, geleneksel epistemolojik görüşler önemli bir hata yapmaktadırlar.

David Hume'un ve diğer deneyimcilerin haklı olduğu bir nokta, "bilginin malzemesinin" algı verileri yoluyla geldiğidir.

Kant, her varlık türüne göre görünen dünyanın, o varlık türünün zihinsel özellikleri tarafından belirlendiğini savlar. Kant, öncelikle analitik ve sentetik cümleler arasında bir ayrım olduğunu söyler. Analitik cümlelerde cümlenin yüklemi öznede zaten var olan bilgilere yeni bilgi katmaz. "Siyah kediler siyahtır." ve "Bekarlar evli olmayan insanlardır." analitik cümlelerdir çünkü bu cümlelerin özneleri yüklem bölümünde  içerilen tüm bilgileri zaten içerirler.

Analitik ve Sentetik ayrımı: Cümle yapısı ile ilgilidir. Analitik cümleler dünyaya ilişkin yeni gözlemsel bilgiler içermezken sentetik cümleler yüklemleri öznede içerilen bilgilerin ötesine geçen cümlelerdir.

Sentetik cümleler bizim dünyaya ilişkin bilgimizi genişletirler. Analitik cümleler ise ya içeriksel olarak boşturlar ya da kavramsal arası ilişkileri ortaya koyarlar. Yani deneyimsel olarak yeni bir bilgi taşımazlar.

Epistemolojik açıdan önemli bir başka ayrımda "a priori" ve "a posteriori" ayrımıdır. Analitik ve Sentetik çifti cümlelerin yapısını ilgilendirir. A priori ve a posteriori ayrımı ise bilginin edinilme tarzının ayrımıdır.

A priori: bilgi evrensel olarak doğrudur. Ancak tek tek deneyimler yoluyla kazanılamaz.

Aposteriori: Bilginin kazanılması için somut deneyim parçaları gerekir. Gözlemsel bilgilerimizin tümü a posterioridir.

Bu iki deyim latincede olup, a priori deneyimi önceleyen, a posteriori deneyimle gelen anlamlarında kullanılır.

Sentetik a priori, diğer olası bileşimler arasında en ilginç ve felsefi açıdan en önemi olandır.

25 Ekim 2014 Cumartesi

SQL'de VIEW Oluşturma ve Kullanımı

Temel amacı tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal tabloymuş gibi yeniden sorgulayabilmemizi sağlamaktır. Kısaca SQL'de verilerimizin isteğe bağlı alanlara ve tablolara göre ekranımızda görünteleme işlemi yapmamızı sağlar. Kullanıcının istediği verilere göre gösterim yapmak veya raporlamak SQL VIEW sayesinde kolaylıkla halledilmektedir.

Veritabanı VIEW ile oluşan datayı saklamaz. Bir VIEW geçen SQL deyimi her çalıştırıldığında ilgili VIEW sanal tabloyu yeniden oluşturur. VIEW üzerinde yapılan değişikler kendilerini oluşturan kaynak tabloları da etkiler ve aynı değişiklikler kaynak tablolara da yansır. VIEW kullanmanın önemli nedenlerinden bir tanesi sağladığı güvenliktir. Örneğin tablolarınızın tamanının görünmesini istemediğiniz zamanlarda sanal tablo kullanıp tablolarınızın tamamının görünmesini engelleyebilirsiniz. Karmaşık sorguları basitleştirmek, sorgu süresini kısaltmak ve ağ üzerindeki trafiği düşürmek, erişim izinlerini düzenlemek ve farklı sunuculardaki benzer verileri karşılaştırmak içinde kullanılır.
Oluşturulan VIEW'ler Object Explorer kısmında database/Views altında toplanır.

VIEW Oluşturma: VIEW oluşturmak için CREATE VIEW ifadesi kullanılır.

Genel Yapısı:
CREATE VIEW view_adı 
AS 
SELECT * FROM tablo_adi

Örnek1:
CREATE VIEW deneme_view 
SELECT EmployeeID, FirstName, LastName
FROM Employees

Örneğimizde Northwind veritabanında Employees tablosundan sadece "EmployeeID, FirstName, LastName" kullanarak yeni bir view oluşturalım ve "select * from deneme_view" ile sorgumuzu çalıştıralım.

Örnek2:
CREATE VIEW deneme2_view
AS
SELECT FirstName,LastName
FROM Employees
WHERE FirstName LIKE 'a%'
WITH CHECK OPTION
Bu örneğimizde diğerinden farklı olarak bir şart belirttik ve WITH CHECK OPTION ifadesini kullandık.
WITH CHECK OPTION: SQL Server'da VIEW tanımlarken örneğimizdeki gibi WHERE anahtar sözcüğüyle bir şart belirtmiş olabiliriz. Böyle bir VIEW nesnesini kullanırken de VIEW üzerinden tablolarımıza "INSERT, UPDATE, DELETE" işlemleri gerçekleştirebiliriz. 

Şimdi diyelimki oluşturduğumuz VIEW'e bir INSERT yapmamız gerekti;
insert into deneme2_view values('Bayraktar','İbrahim')
eklenme yapılmak istendiğinde "The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint. The statement has been terminated." hatasıyla karşılaşırız (VIEW oluştururken kullandığımız WITH CHECK OPTION ifadesinden dolayı 'a' ile başlamayan bir ekleme yapılamaz)

VIEW Silme: VIEW'leri silmek için DROP ifadesi kullanılır.

Genel Yapısı:
DROP VIEW view_adı
Örnek3:
DROP VIEW deneme2_view

VIEW Değişiklik Yapma: VIEW'ler üzerinde değişiklik yapmak için ALTER ifadesi kullanılır.

Genel Yapısı:
ALTER VIEW view_adı 
WITH seçenekler 
AS SELECT ifadesi

with schemabinding ifadesi ile kilitleme:
with schemabinding ifadesi VIEW'in bağlı olduğu tablodaki kolonları kilitleyip o kolonların silinmesini ve değişiklik yapılmasını engeller.

Genel Yapısı:
ALTER VIEW view_adı 
WITH schemabinding 
AS 
SELECT ifadesi

Örnek3:
CREATE VIEW deneme3_view
WITH SCHEMABINDING --sütunla ilgili bir değişiklik yapılması engellenir
AS
SELECT FirstName,LastName,City
FROM dbo.EMPLOYEES


with encryption ifadesi ile gizleme: 
VIEW'leri şifreleyip sorguların görünür olmasını engeller. Kaynakların  gizliliğini sağlayan koddur, Kullanıcı sadece oluşturulan VIEW ile ilgili verilere erişebiliR kaynak tablolarla ilgili hiç bir bilgiye ulaşamaz.

Genel Yapısı:
ALTER VIEW view_adı 
WITH encryption 
AS 
SELECT ifadesi

Örnek4:
CREATE VIEW deneme4_view
WITH ENCRYPTION --kaynak gizleme ve pasif design
AS
SELECT * FROM PRODUCTS

with encryption ifadesi kullanıldığında Object Explorer'da VIEW üzerinde kilit işareti belirir ve sağ click yapıldığından Design seçeneğinin pasifleştiğini görebiliriz.

SQL'de sp_helptext System Prosedürünün Kullanımı

sp_helptext prosedürü bizim tanımladığımız ya da sistemde bulunan objelerin tanımlamalarını text formatında gösterir. Böylece istediğimiz objenin tüm içeriğini nerede olduğunu aramadan direk  text içeriği ekrana döndürebiliriz.

Genel Yapısı:
exec sp_helptext '@objname'

Şimdi bir örnek ile olayı daha iyi kavrayalım. SP_ORNEK_1 sp'sinin içeriğini görüntülemek için;
use Northwind
exec sp_helptext 'SP_ORNEK_1'
yazmamış yeterli olacak. Bu komutun sonucunda ilgili Prosedürün text içeriği ekrana dökülür. SQL Server'da bir nesnenin SQL kodunu merak ediyorsanız sp_helptext bizim için en iyi araç. Tabi bu sp ile SQL Server'ın system sp, view ve diğer bileşenlerinin kodunu da görüntüleyebilirsiniz. Böylelikle merak ettiğiniz herhangi bir nesnenin nasıl kodlandığı incelenebilir.

use Northwind
exec sp_helptext 'Sales by Year'
Northwind veritabanı ile birlikte gelen "Sales by Year" isimli Prosedürün text içeriğini alalım.

Copyright 2013-2017 | İbrahim BAYRAKTAR /dev/null Web Günlüğü