SQL Server aracılığıyla bir Access gezintisine katılın

Verilerinizi Access'ten SQL Server'a geçirdikten sonra, artık şirket içi veya karma bir Azure bulut çözümü olabilecek bir istemci/sunucu veritabanınız vardır. Her iki durumda da artık Access gösterim katmanı ve SQL Server da veri katmanıdır. Şimdi çözümünüzün çeşitli yönlerini, özellikle de sorgu performansını, güvenliği ve iş sürekliliğini yeniden düşünmek için uygun bir zamandır; böylelikle veritabanı çözümünüzü geliştirebilir ve ölçeklendirebilirsiniz.

Şirket içinde ve bulutta Access

SQL Server ve Azure belgeleriyle ilk kez karşılaşan bir Access kullanıcısı için bunlar göz korkutucu olabilir. Bundan dolayı sizin için önemli konularda size yol gösterecek bir tur rehberi gerekir. Bu gezintiyi tamamladığınızda veritabanı teknolojisindeki ilerlemeleri keşfetmeye ve daha uzun bir yolculuğa çıkmaya hazır olacaksınız.

Bu makalede

Veritabanı Yönetimi

İş sürekliliğini sağlama

SQL Server Güvenliği

Gizlilikle ilgili kaygıları ele alma

Veritabanı anlık görüntüleri oluşturma

Eşzamanlılık denetimi

Sorgular ve ilgili

Sorgu performansını geliştirme

Sorgulamanın yolları

Anahtarlar ve dizinler ekleme

İşlemler yapma

Kısıtlamaları ve tetikleyicileri kullanma

Veri Türleri

Hesaplanan sütunları kullanma

Verilerinize zaman damgası ekleme

Büyük nesneleri yönetme

Sundry

Hiyerarşik verilerle çalışma

JSON metnini işleme



Kaynaklar

İş sürekliliğini sağlama

Access çözümünüz için, çözümünüzü en az kesintiyle sürekli çalışır durumda tutmak istersiniz ama Access arka uç veritabanıyla seçenekleriniz sınırlıdır. Verilerinizi koruma açısından Access veritabanınızı yedeklemek çok önemlidir ama bunun için kullanıcılarınızı çevrimdışına almanız gerekir. Bir de donanım/yazılım bakımı yükseltmelerinin, ağ veya güç kesintilerinin, donanım arızasının, güvenlik sızıntılarının, hatta siber saldırıların neden olduğu planlanmamış kapalı kalma süreleri vardır. Kapalı kalma sürelerini ve bunun işlerinize etkisini en aza indirmek için, SQL Server veritabanını kullanıldığı sırada yedekleyebilirsiniz. Bunun yanı sıra SQL Server yüksek kullanılabilirlik (HA) ve olağanüstü durum kurtarma (DR) stratejileri de sunar. Birleştirilmiş bu iki teknoloji HADR olarak adlandırılır. Daha fazla bilgi için bkz. İş sürekliliği ve veritabanı kurtarma ve SQL Server ile iş sürekliliğini güçlendirme (e-kitap).

Kullanımdayken yedekleme

SQL Server, veritabanı çalışırken yapılabilen bir çevrimiçi yedekleme işlemi kullanır. Tam yedekleme, kısmi yedekleme veya dosya yedeklemesi yapabilirsiniz. Eksiksiz bir geri yükleme işlemini güvence altına almak için yedeklemede veriler ve işlem günlükleri kopyalanır. Özellikle şirket içi bir çözümde, basit ve tam kurtarma seçenekleri arasındaki farklara ve bunların işlem günlüğünün büyümesini nasıl etkilediğine dikkat edin. Daha fazla bilgi için bkz. Kurtarma Modelleri.

Dosya yönetimi ve veritabanı küçültme işlemleri dışında yedekleme işlemlerinin çoğu hemen gerçekleşir. Bunun tersine, yedekleme işlemi sürerken veritabanı dosyası oluşturmayı veya silmeyi denerseniz işlem başarısız olur. Daha fazla bilgi için bkz. Yedeklemeye Genel Bakış.

HADR

Yüksek kullanılabilirlik ve iş sürekliliği elde etmek için kullanılan en yaygın iki teknik yansıtma ve kümelemedir. SQL Server yansıtma ve kümeleme teknolojisini "Her Zaman Açık Yük Devretme Kümesi Örnekleri" ve "Her Zaman Açık Kullanılabilirlik Grupları" ile tümleştirir.

Yansıtma, etkin veritabanının tam kopyası veya yansıtması olan yedek bir veritabanını ayrı bir donanımda tutarak neredeyse anında yük devretmeyi destekleyen, veritabanı düzeyinde bir süreklilik çözümüdür. Gelen işlemin tüm sunuculara aynı zamanda işlendiği zaman uyumlu (yüksek güvenlikli) bir modda veya gelen işlemin etkin veritabanına işlendiği ve ardından önceden belirlenmiş bir noktada yansıtmaya kopyalandığı zaman uyumsuz (yüksek performanslı) bir modda çalışabilir. Yansıtma veritabanı düzeyinde bir çözümdür ve yalnızca tam kurtarma modelinin kullanıldığı veritabanlarında çalışır.

Kümeleme, sunucuları kullanıcıya tek bir örnek gibi görünen tek veri depolamasında bir araya getiren sunucu düzeyinde bir çözümdür. Kullanıcılar örneğe bağlanır ve o anda örnekteki hangi sunucunun etkin olduğunu hiçbir zaman bilmeleri gerekmez. Bir sunucu başarısız olur ve bakım için çevrimdışına alınması gerekirse, kullanıcı deneyiminde hiçbir değişiklik olmaz. Kümedeki her sunucu küme yöneticisi tarafından bir sinyal kullanılarak izlenir; dolayısıyla kümedeki etkin sunucunun çevrimdışı olduğunu algılar ve rahatça kümedeki sonraki sunucuya geçmeyi dener. Bununla birlikte geçiş sırasında değişken bir gecikme süresi söz konusudur.

Daha fazla bilgi için bkz. Her Zaman Açık Yük Devretme Kümesi Örnekleri ve Her Zaman Açık Kullanılabilirlik Grupları: yüksek kullanılabilirlik ve olağanüstü durum kurtarma çözümü.

Sayfanın Başı

SQL Server Güvenliği

Güven Merkezi'ni kullanarak ve veritabanını şifreleyerek Access veritabanınızı koruyabilseniz de, SQL Server'da daha gelişmiş güvenlik özellikleri vardır. Access kullanıcısı için öne çıkan üç özelliği gözden geçirelim. Daha fazla bilgi için bkz. SQL Server'ın güvenliğini sağlama.

Veritabanı kimlik doğrulaması

SQL Server'da dört veritabanı kimlik doğrulama yöntemi vardır ve bunların her birini ODBC bağlantı dizesinde belirtebilirsiniz. Daha fazla bilgi için bkz. Azure SQL Server Veritabanından verilere bağlanma veya verileri içeri aktarma. Her yöntemin kendi özel avantajları vardır.

Tümleşik Windows kimlik doğrulaması    Kullanıcı doğrulaması, güvenlik rolleri ve kullanıcıların özellikler ve verilerle sınırlanması için Windows kimlik bilgilerini kullanın. Uygulamanızda etki alanı kimlik bilgilerinden yararlanabilir ve kullanıcı haklarını kolayca yönetebilirsiniz. İsteğe bağlı olarak Hizmet Asıl Adları (SPN) girin. Daha fazla bilgi için bkz. Kimlik Doğrulama Modu seçme.

SQL Server Kimlik Doğrulaması    Kullanıcıların bir oturumda veritabanına ilk kez erişirken oturum açma kimliği ve parolayı girerek veritabanında önceden ayarlanmış kimlik bilgileriyle bağlanmaları gerekir. Daha fazla bilgi için bkz. Kimlik Doğrulama Modu seçme.

Azure Active Directory Tümleşik kimlik doğrulaması    Azure Active Directory'yi kullanarak Azure SQL Server Veritabanına bağlanın. Azure Active Directory kimlik doğrulamasını bir kez yapılandırdıktan sonra ek oturum açma bilgileri ve parola gerekmez. Daha fazla bilgi için bkz. Azure Active Directory Kimlik Doğrulaması Kullanarak SQL Veritabanına Bağlanma.

Active Directory Parola ile kimlik doğrulaması    Oturum açma adı ve parola girip, Azure Active Directory’de önceden ayarlanmış kimlik bilgileriyle bağlanın. Daha fazla bilgi için bkz. Azure Active Directory Kimlik Doğrulaması Kullanarak SQL Veritabanına Bağlanma.

İpucu    Azure SQL Server veritabanına yönelik olası güvenlik tehditlerine işaret eden anormal veritabanı etkinliklerinde uyarı almak için Tehdit Algılama'yı kullanın. Daha fazla bilgi için bkz. SQL Veritabanı Tehdit Algılaması.

Uygulama güvenliği

SQL Server'da Access'le yararlanabileceğiniz iki uygulama düzeyi güvenlik özelliği vardır.

Dinamik Veri Maskeleme    Hassas bilgileri maskeleyerek ayrıcalığı olmayan kullanıcılardan gizleyin. Örneğin Sosyal Güvenlik numaralarını kısmen veya tamamen maskeleyebilirsiniz.

Kısmi veri maskesi

Kısmi veri maskesi

Tam veri maskesi

Tam veri maskesi

Veri maskesini çeşitli yollarla tanımlayabilir ve bunları farklı veri türlerine uygulayabilirsiniz. Veri maskeleme, tanımlı bir kullanıcı kümesi için tablo ve sütun düzeyinde ilke tabanlı olarak yapılır ve sorguya gerçek zamanlı olarak uygulanır. Daha fazla bilgi için bkz. Dinamik Veri Maskeleme.

Satır Düzeyi Güvenlik    Satır Düzeyi Güvenlik kullanarak kullanıcı özellikleri temelinde hassas bilgiler içeren belirli veritabanı satırlarına erişimi denetleyebilirsiniz. Veritabanı sistemi bu erişim kısıtlamalarını uygular ve bu sayede güvenlik sistemi daha güvenilir ve güçlü olur.

SQL Server satır güvenliği

İki tür güvenlik koşulu vardır:

  • Filtre koşulu, bir sorgudan satırları filtreler. Filtre saydamdır ve son kullanıcı filtrelemeyi fark etmez.

  • Engelleme koşulu yetkisiz eylemi önler ve eylem gerçekleştirilemezse bir özel durum oluşturur.

Daha fazla bilgi için bkz. Satır düzeyi güvenlik.

Şifrelemeyle Verileri Koruma

Veritabanı performansını etkilemeden bekleyen, aktarımdaki ve kullanımdaki verileri koruyun. Daha fazla bilgi için bkz. SQL Server Şifrelemesi.

Bekleyen veri şifrelemesi    Fiziksel depolama katmanında çevrimdışı medya saldırılarına karşı kişisel verilerin güvenliğini sağlamak için, Saydam Veri Şifrelemesi (TDE) olarak da adlandırılan bekleyen veri şifrelemesini kullanın. Bu, fiziksel medya çalındığında veya hatalı bir şekilde atıldığında bile verilerinizin korunacağı anlamına gelir. TDE, uygulamalarınızda herhangi bir değişikliğe gerek kalmadan veritabanlarını, yedekleri ve işlem günlüklerini gerçek zamanlı olarak şifreler ve şifrelerini çözer.

Aktarımda şifreleme    Gözetlemeye ve “ortadaki adam saldırılarına” karşı korumak için, ağda iletilen verileri şifreleyebilirsiniz. SQL Server son derece güvenli bir iletişim için Aktarım Katmanı Güvenliği (TLS) 1.2'yi destekler. Güvenli olmayan ağlar üzerindeki iletişimi korumak için Tablo Verisi Akışı (TDS) protokolü de kullanılır.

İstemcide kullanımda şefreleme    Kullanımdaki kişisel verileri korumak için “Always Encrypted” özelliğini kullanmak istersiniz. Kişisel veriler istemci bilgisayarda bir sürücü tarafından şifrelenir ve şifreleri çözülür; şifreleme anahtarları veritabanı altyapısına gösterilmez. Sonuç olarak, şifrelenmiş veriler yalnızca bu verileri yönetmekten sorumlu olan kişiler tarafından görülür ve erişimi olmaması gereken yüksek ayrıcalıklı diğer kullanıcılara gösterilmez. Seçilen şifreleme türüne bağlı olarak, Always Encrypted özelliği şifrelenmiş sütunların aranması, gruplandırılması ve dizine alınması gibi bazı veritabanı özelliklerini sınırlar.

Sayfanın Başı

Gizlilikle ilgili kaygıları ele alma

Gizlilik kaygıları artık çok yaygın hale geldiğinden Avrupa Birliği Genel Veri Koruma Yönetmeliği (GDPR) aracılığıyla yasal gereksinimleri tanımlamıştır. Neyse ki SQL Server arka ucu bu gereksinimleri karşılamaya çok uygundur. GDPR'nin uygulanmasını üç adımlık bir çerçeve olarak düşünün.

GDPR üç adımlı bir işlemdir.

1. Adım: Uyumluluk riskini değerlendirme ve yönetme

GDPR tablolar ve dosyalardaki kişisel bilgilerinizin tanımlanmasını ve envanterinin çıkarılmasını gerektirir. Bu bilgiler ad, fotoğraf, e-posta adresi, banka ayrıntıları, sosyal ağ web sitelerindeki gönderiler, tıbbi bilgiler, hatta IP adresi bile olabilir.

SQL Server Management Studio'nun yeni yerleşik aracı SQL Veri Bulma ve Sınıflandırma, sütunlara iki meta veri özniteliği ekleyerek hassas verileri bulmanıza, sınıflandırmanıza, etiketlemenize ve raporlamanıza yardımcı olur:

  • Etiketler    Verilerin hassaslığını tanımlamak için.

  • Bilgi türleri    Sütunda depolanan verilerin türleriyle ilgili ek ayrıntılar sağlamak için.

Kullanabileceğiniz bir diğer keşif mekanizması, CONTAINS ve FREETEXT koşullarının ve SELECT deyimiyle birlikte CONTAINSTABLE ve FREETEXTTABLE gibi satır kümesi değeri olan işlevlerin kullanımını içeren tam metin aramasıdır. Tam metin aramasını kullanarak sözcükleri, sözcük bileşimlerini ya da eş anlamlılar veya çekim eki alanlar gibi sözcük çeşitlemelerini bulmak için tablolarda arama yapabilirsiniz. Daha fazla bilgi için bkz. Tam Metin Araması.

2. Adım: Kişisel bilgileri koruma

GDPR, kişisel bilgilerin güvenliğini sağlamanızı ve bu bilgilere erişimi sınırlamanızı gerektirir. Ağınıza ve kaynaklarınıza erişimi yönetmek için izlediğiniz standart adımlara (örneğin güvenlik duvarı ayarları) ek olarak, veri erişimini denetlemenize yardımcı olması için SQL Server güvenlik özelliklerini kullanabilirsiniz:

  • Kullanıcı kimliğini yönetmek ve yetkisiz erişimi engellemek için SQL Server kimlik doğrulaması.

  • Kullanıcıyla bu veriler arasındaki ilişki temelinde tablodaki satırlara erişimi sınırlamak için Satır Düzeyi Güvenlik.

  • Ayrıcalığı olmayan kullanıcılara karşı maskeleyerek kişisel verilerin açıklanmasını sınırlamak için Dinamik Veri Maskeleme.

  • Kişisel verilerin iletim ve depolama sırasında koruma altına alınmasını, ayrıca sunucu tarafı da dahil olmak üzere bu verilerin gizliliğin bozulmasına karşı korunmasını sağlamak için şifreleme.

Daha fazla bilgi için bkz. SQL Server Güvenliği.

3. Adım: İsteklere verimli bir şekilde yanıt verme

GDPR, kişisel veri işleme işlemlerinin kaydının tutulmasını ve bu kayıtların istendiğinde denetim makamına sağlanmasını gerektirir. Yanlışlıkla verilerin açıklanması gibi sorunlar oluşursa, koruma denetimleri hızla yanıt vermenize olanak tanır. Raporlama gerektiğinde veriler hızla kullanılabilir olmalıdır. Örneğin GDPR, kişisel veri ihlali ortaya çıktığında “ihlalden haberdar olduktan itibaren en geç 72 saat içerisinde” denetim makamına raporlanmasını gerektirir.

SQL Server 2017 raporlama görevlerinde çeşitli yollardan size yardımcı olur:

  • SQL Server Audit, veritabanı erişim ve işleme etkinliklerine ilişkin kalıcı kayıtların var olduğundan emin olmanıza yardımcı olur. Olası tehditleri, uygunsuz kullanım şüphelerini veya güvenlik ihlallerini anlamanıza ve belirlemenize yardımcı olmak için veritabanı etkinliklerini izleyen ayrıntılı bir denetim gerçekleştirir. Hemen verilerde adli araştırma yapabilirsiniz.

  • SQL Server zamana bağlı tabloları, veri değişikliklerinin tam geçmişini tutmak için tasarlanmış sistem sürümü tutulan kullanıcı tablolarıdır. Kolay raporlama veya zamanın belirli bir noktasında analiz için bu tabloları kullanabilirsiniz.

  • SQL Güvenlik Açığı Değerlendirmesi güvenlik ve izin sorunlarını algılamanıza yardımcı olur. Sorun algılandığında, çözüme yönelik eylemleri bulmak için veritabanı tarama raporlarında detaya gidebilirsiniz.

Daha fazla bilgi için bkz. Güven platformu oluşturma (e-kitap) ve GDPR Uyumluluğu Yolculuğu.

Sayfanın Başı

Veritabanı anlık görüntüleri oluşturma

Veritabanı anlık görüntüsü, SQL Server veritabanının belirli bir noktadaki salt okunur, statik görünümüdür. Access veritabanını kopyalayarak etkili bir şekilde veritabanı anlık görüntüsü oluşturabilseniz de, Access'te SQL Server'daki gibi yerleşik bir yöntem yoktur. Veritabanı anlık görüntüsünü kullanarak, bu anlık görüntünün oluşturulduğu zamana ait verileri temel alan raporlar yazabilirsiniz. Ayrıca, dönem sonu raporlarını dağıtırken kullandığınız her üç aylık finansal döneme ilişkin geçmiş verileri gibi geçmiş verilerini tutmak için de veritabanı anlık görüntüsünü kullanabilirsiniz. Aşağıdaki en iyi yöntemleri kullanmanızı öneririz:

  • Anlık görüntüyü adlandırın    Her veritabanı anlık görüntüsünün benzersiz bir veritabanı adı olmalıdır. Kolayca belirlemek için bu ada amacı ve zaman çerçevesini ekleyin. Örneğin, AdventureWorks veritabanının 06:00 ile 18:00 arasında 6 saatlik aralıklarla üç kez anlık görüntüsünü almak için, bunları AdventureWorks_AnlıkGörüntü_0600, AdventureWorks_AnlıkGörüntü_1200 ve AdventureWorks_AnlıkGörüntü_1800 olarak adlandırın.

  • Anlık görüntülerin sayısını sınırlayın    Her veritabanı anlık görüntüsü açıkça atılana kadar kalır. Anlık görüntüler giderek büyüyeceği için, yeni anlık görüntüyü oluşturduktan sonra eski anlık görüntüyü silerek disk alanından tasarruf etmek isteyebilirsiniz. Örneğin günlük raporlar hazırlıyorsanız, veritabanı anlık görüntüsünü 24 saat tutun ve ardından bunu atıp yerine yeni bir anlık görüntü alın.

  • Doğru anlık görüntüye bağlanın    Veritabanı anlık görüntüsünü kullanmak için Access ön ucunun doğru konumu bilmesi gerekir. Mevcut anlık görüntünün yerine yenisini koyduğunuzda, Access'i yeni anlık görüntüye yönlendirmelisiniz. Doğru veritabanı anlık görüntüsüne bağlandığınızdan emin olmak için Access ön ucuna mantık ekleyin.

Veritabanı anlık görüntüsü şöyle oluşturulur:

CREATE DATABASE AdventureWorks_dbss1800 ON  
( NAME = AdventureWorks_Data, FILENAME =   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks_snapshot_0600' )  
AS SNAPSHOT OF AdventureWorks;  

Daha fazla bilgi için bkz. Veritabanı Anlık Görüntüleri (SQL Server).

Sayfanın Başı

Eşzamanlılık denetimi

Birçok kişi aynı anda veritabanındaki verileri değiştirmeye çalıştığında, bir kişinin yaptığı değişikliklerin başka birinin değişikliklerini olumsuz etkilememesi için bir denetim sistemi gerekir. Bu sistem eşzamanlılık denetimi olarak adlandırılır ve iki temel kilitleme stratejisi vardır: kötümser ve iyimser. Kilitleme, kullanıcıların verilerde diğer kullanıcıları etkileyecek değişiklikler yapmasını önler. Ayrıca kilitleme, özellikle de beklenmedik sonuçlar doğurabilecek sorgularda veritabanı bütünlüğünü sağlamaya yardımcı olur. Access'in ve SQL Server'ın bu eşzamanlılık denetimi stratejilerini uygulama yönteminde iki önemli fark vardır.

Access'te varsayılan kilitleme stratejisi iyimserdir ve kilidin sahipliğini bir kayda yazmayı deneyen ilk kişiye verir. Access, aynı anda aynı kayda yazmaya çalışan diğer kişiye Yazma Çakışması iletişim kutusunu görüntüler. Çakışmayı çözmek için diğer kişi kaydı kaydedebilir, panoya kopyalayabilir veya değişiklikleri atabilir.

Eşzamanlılık denetim stratejisini değiştirmek için RecordLocks özelliğini de kullanabilirsiniz. Formları, raporları ve sorguları etkileyen bu özelliğin üç ayarı vardır:

  • Kilit Yok    Formda, kullanıcılar aynı anda aynı kaydı düzenlemeyi deneyebilir ama Yazma Çakışması iletişim kutusu görüntülenebilir. Raporda, rapor önizlenirken veya yazdırılırken kayıtlar kilitlenmez. Sorguda, sorgu çalıştırılırken kayıtlar kilitlenmez. Access iyimser kilitlemeyi bu şekilde uygular.

  • Tüm Kayıtlar    Form görünümünde veya Veri Sayfası görünümünde form açık durumdayken, rapor önizlenir veya yazdırılırken ya da sorgu çalıştırılırken, temel oluşturan tablo veya sorgudaki tüm kayıtlar kilitlenir. Kilitli olduğu sırada kullanıcılar kayıtları okuyabilir.

  • Düzenlenmiş Kayıt    Formlar ve sorgularda, herhangi bir kullanıcı kayıttaki herhangi bir alanı düzenlemeye başladığı anda kayıt sayfası kilitlenir ve kullanıcı başka bir kayda geçene kadar kilitli kalır. Sonuç olarak, bir kayıt aynı anda birden çok kullanıcı tarafından düzenlenemez. Access kötümser kilitlemeyi bu şekilde uygular.

Daha fazla bilgi için bkz. Yazma Çakışması iletişim kutusu ve RecordLocks Özelliği.

SQL Server'da eşzamanlılık denetimi şöyle çalışır:

  • Kötümser    Kullanıcı kilit uygulanmasına neden olan bir eylem gerçekleştirdikten sonra, kilidin sahibi serbest bırakana kadar diğer kullanıcılar kilitle çakışabilecek eylemler gerçekleştiremez. Bu eşzamanlılık denetimi, asıl olarak yüksek veri çekişmesi olan ortamlarda kullanılır.

  • İyimser    İyimser eşzamanlılık denetiminde kullanıcılar verileri okurken kilitlemez. Bir kullanıcı verileri güncelleştirdiğinde, sistem başka bir kullanıcının verileri okunduktan sonra değiştirip değiştirmediğini denetler. Başka bir kullanıcı verileri güncelleştirdiyse hata oluşur. Normalde, hatayı alan kullanıcı işlemi geri alır ve baştan başlar. Bu eşzamanlılık denetimi, asıl olarak düşük veri çekişmesi olan ortamlarda kullanılır.

SET TRANSACTION deyimini kullanıp işlemin diğer işlemler tarafından yapılan değişikliklerden korunma düzeyini tanımlayan çeşitli işlem yalıtım düzeylerini seçerek eşzamanlılık denetimi türünü belirtebilirsiniz:

 SET TRANSACTION ISOLATION LEVEL
 { READ UNCOMMITTED
    | READ COMMITTED
    | REPEATABLE READ  
    | SNAPSHOT
    | SERIALIZABLE
 }

Yalıtım düzeyi

Açıklama

Kaydedilmeyen okuma

İşlemler yalnızca fiziksel olarak bozuk verilerin okunmamasını sağlayacak kadar yalıtılır.

Kaydedilen okuma

İşlemler, daha önce başka bir işlem tarafından okunan verileri ilk işlemin tamamlanmasını beklemeden okuyabilir.

Yinelenebilir okuma

Seçilen veriler üzerinde işlemin sonuna kadar okuma ve yazma kilitleri uygulanır ama hayalet okumalar oluşabilir.

Anlık görüntü

İşlem düzeyi okuma tutarlılığı sağlamak için satır sürümünü kullanır.

Serileştirilebilir

İşlemler birbirinden tamamen yalıtılır.

Daha fazla bilgi için bkz. İşlem Kilitleme ve Satır Sürümü Oluşturma Kılavuzu.

Sayfanın Başı

Sorgu performansını geliştirme

Access doğrudan sorgusu çalıştırdıktan sonra, SQL Server'ın bu sorgunun daha verimli çalıştırılmasını sağlayan gelişmiş yöntemlerinden yararlanın.

Access veritabanından farklı olarak, SQL Server birden çok mikroişlemcisi (CPU) olan bilgisayarlarda sorgu yürütmesini ve dizin işlemlerini iyileştirmek için paralel sorgular sağlar. SQL Server sistemin çeşitli çalışan iş parçacıklarını kullanarak paralel sorgu veya dizin işlemleri gerçekleştirebildiğinden, işlemler hızla ve verimli bir şekilde tamamlanabilir.

Sorgular, veritabanı çözümünüzün genel olarak performansını geliştirme açısından kritik bir bileşendir. Bozuk sorgular süresiz olarak çalışır, zaman aşımına uğrar ve CPU, bellek ve ağ bant genişliği gibi kaynakları tüketir. Bu durum kritik iş bilgilerinin kullanılabilirliğini engeller. Tek bir bozuk sorgu bile veritabanınızda ciddi performans sorunlarına yol açabilir.

Daha fazla bilgi için bkz. SQL Server ile daha hızlı sorgulama (e-kitap).

Sorgu iyileştirme

Sorgunun performansını analiz etmenize ve geliştirmenize yardımcı olmak için çeşitli araçlar birlikte çalışır: Sorgu İyileştiricisi, yürütme planları ve Query Store.

Sorgu iyileştirme nasıl çalışır?

Sorgu iyileştiricisi

Sorgu İyileştiricisi SQL Server'ın en önemli bileşenlerinden biridir. Sorgu İyileştiricisini kullanarak sorguyu analiz edebilir ve gerekli verilere erişmenin en verimli yolunu saptayabilirsiniz. Sorgu İyileştiricisinin girişi sorgudan, veritabanı şemasından (tablo ve dizin tanımları) ve veritabanı istatistiklerinden oluşur. Sorgu İyileştiricisinin çıkışı bir yürütme planıdır.

Daha fazla bilgi için bkz. SQL Server Sorgu İyileştiricisi.

Yürütme planı

Yürütme planı, erişilecek kaynak tabloları ve her tablodan veri ayıklamak için kullanılan yöntemleri sıraya koyan bir tanımdır. İyileştirme, olası birçok yürütme planı arasından bir plan seçme işlemidir. Olası yürütme planlarının her biriyle ilişkilendirilmiş, işlem kaynakları miktarı cinsinden bir maliyet vardır ve Sorgu İyileştiricisi tahmini maliyeti en düşük olan planı seçer.

SQL Server'ın veritabanında değişen koşullara da dinamik olarak uyarlanması gerekir. Sorgu yürütme planlarındaki regresyonlar performansı önemli ölçüde etkileyebilir. Veritabanındaki bazı değişiklikler, veritabanının yeni durumuna bağlı olarak bir yürütme planının verimsiz veya geçersiz duruma gelmesine neden olabilir. SQL Server yürütme planını geçersiz kılan değişiklikleri algılar ve planı geçersiz olarak işaretler.

Bundan sonra, sorguyu yürüten bir sonraki bağlantı için yeni bir planın yeniden derlenmesi gerekir. Planı geçersiz kılan koşullar şunlardır:

  • Sorgunun (ALTER TABLE veya ALTER VIEW) başvurduğu bir tablo veya görünümde yapılan değişiklikler.

  • Yürütme planı tarafından kullanılan dizinlerde yapılan değişiklikler.

  • UPDATE STATISTICS gibi bir deyimden açıkça veya otomatik olarak oluşturulan ve yürütme planı tarafından kullanılan istatistiklerde yapılan değişiklikler.

Daha fazla bilgi için bkz. Yürütme planları.

Query Store

Query Store yürütme planı seçimi ve performansıyla ilgili içgörü sağlar. Yürütme planı değişikliklerinin neden olduğu performans farklılıklarını hızla bulmanıza yardımcı olarak, performans sorunlarını gidermeyi basitleştirir. Query Store sorguların, planların, çalışma zamanı istatistiklerinin ve bekleme istatistiklerinin geçmişi gibi telemetri verilerini toplar. Query Store'u uygulamak için ALTER DATABASE deyimini kullanın:

ALTER DATABASE AdventureWorks2012 SET QUERY_STORE = ON;

Daha fazla bilgi için, Query Store'u kullanarak performansı izleme konusuna bakın.

Otomatik Plan Düzeltmesi

Sorgu performansını geliştirmenin belki de en kolay yolu, Azure SQL Veritabanı ile sağlanan Otomatik Plan Düzeltmesi özelliğini kullanmaktır. Bu özelliği açmanız ve çalışmasına izin vermeniz yeterlidir. Yürütme planını sürekli izleyip analiz eder, sorunlu yürütme planlarını algılar ve performans sorunlarını otomatik olarak düzeltir. Otomatik Plan Düzeltmesi arka planda öğrenme, uyarlama, doğrulama ve tekrarlamadan oluşan dört adımlık bir strateji kullanır.

Daha fazla bilgi için bkz. Otomatik ayarlama.

Uyarlanabilir Sorgu İşleme

Ayrıca, yalnızca uyarlanabilir sorgu işleme adlı yeni bir özelliği olan SQL Server 2017'ye yükselterek de daha hızlı sorgular elde edebilirsiniz. SQL Server çalışma zamanı özellikleri temelinde sorgu planı seçimlerini ayarlar.

Kardinalite tahmini, bir yürütme planındaki her adımda işlenen yaklaşık satır sayısını belirler. Yanlış tahminler sorgu yanıt süresinin yavaş olmasına, gereksiz kaynak kullanımına (bellek, CPU ve GÇ) ve işleme hızı ile eşzamanlılığın azalmasına yol açabilir. Uygulama iş yükü özelliklerini uyarlamak için üç teknik kullanılır:

  • Toplu iş modunda bellek ataması geri bildirimi    Başarısız kardinalite tahminleri sorguların “diske taşmasına” veya çok fazla bellek almasına neden olabilir. SQL Server 2017 yürütme geri bildirimi temelinde bellek atamalarını ayarlar, diske taşmaları kaldırır ve tekrarlanan sorgularda eşzamanlılığı geliştirir.

  • Toplu modda uyarlanabilir birleştirmeler    Uyarlanabilir birleştirmeler, çalışma zamanında gerçek giriş satırlarını temel alıp dinamik olarak daha iyi bir iç birleştirme türü (iç içe döngü birleştirmeleri, birleşim birleştirmeleri veya karma ile birleştirmeler) seçer. Bunun sonucunda, yürütme sırasında bir plan dinamik olarak daha iyi bir birleştirme stratejisine geçebilir.

  • Araya eklemeli yürütme    Geleneksel olarak çok deyimli tablo değeri olan işlevler sorgu işlemesi tarafından kara kutu olarak değerlendirilir. SQL Server 2017 aşağı akış işlemlerini geliştirmek için satır sayılarını daha iyi tahmin edebilir.

Veritabanı için 140 uyumluluk düzeyini etkinleştirerek iş yüklerinin otomatik olarak uyarlanabilir sorgu işlemesine uygun olmasını sağlayabilirsiniz:

ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 140;

Daha fazla bilgi için bkz. SQL veritabanlarında akıllı sorgu işlemesi.

Sayfanın Başı

Sorgulamanın yolları

SQL Server'da sorgulamanın çeşitli yolları ve her yolun kendi avantajları vardır. Access çözümünüzde doğru seçimi yapmak için bunları neler olduğunu bilmek istersiniz. TSQL sorgularınızı oluşturmanın en iyi yolu, bunları doğru anahtar sözcükleri seçmenize ve söz dizimi hatalarını denetlemenize yardımcı olan IntelliSense özelliğine sahip SQL Server Management Studio (SSMS) Transact-SQL düzenleyicisini kullanarak etkileşimli bir şekilde düzenlemek ve test etmektir.

Görünümler

SQL Server'da görünüm sanal bir tablo gibidir; görünüm verileri bir veya birden çok tablodan veya diğer görünümlerden gelir. Öte yandan sorgularda görünümlere aynı tablolar gibi başvurulur. Görünümler sorguların karmaşıklığını gizleyebilir, satır ve sütun kümesini sınırlayarak verilerin korunmasına yardımcı olabilir. Aşağıda basit bir görünüm örneği verilmiştir:

CREATE VIEW HumanResources.EmployeeHireDate AS  
SELECT p.FirstName, p.LastName, e.HireDate  
FROM HumanResources.Employee AS e JOIN Person.Person AS p  
ON e.BusinessEntityID = p.BusinessEntityID;

En uygun performansı elde etmek ve görünüm sonuçlarını düzenlemek için veritabanında bir tablo gibi kalıcı olan, kendisine ayrılmış depolaması bulunan ve herhangi bir tablo gibi sorgulanabilen dizinli bir görünüm oluşturun. Bunu Access'te kullanmak için, aynı tabloya bağlandığınız gibi görünüme bağlanın. Aşağıda bir dizinli görünüm örneği verilmiştir:

CREATE VIEW Sales.vOrders  
WITH SCHEMABINDING  
AS  
    SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Revenue,  
        OrderDate, ProductID, COUNT_BIG(*) AS COUNT  
    FROM Sales.SalesOrderDetail AS od, Sales.SalesOrderHeader AS o  
    WHERE od.SalesOrderID = o.SalesOrderID  
    GROUP BY OrderDate, ProductID;  

CREATE UNIQUE CLUSTERED INDEX IDX_V1   
    ON Sales.vOrders (OrderDate, ProductID);  

Öte yandan bazı sınırlamaları vardır. Birden fazla temel tablonun etkilenmesi ya da görünümün toplama işlevleri veya DISTINCT yan tümcesi içermesi durumunda, verileri güncelleştiremezsiniz. SQL Server hangi kaydın silineceğini bilmediğine ilişkin bir hata iletisi döndürürse, görünümde bir silme tetikleyicisi eklemeniz gerekebilir. Son olarak, Access sorgularında yaptığınız gibi ORDER BY yan tümcesini kullanamazsınız.

Daha fazla bilgi için bkz. Görünümler ve Dizinli Görünümler Oluşturma.

Saklı yordamlar

Saklı yordam giriş parametreleri alan, çıkış parametreleri döndüren ve bir durum değeriyle başarıyı veya başarısızlığı gösteren bir veya birden çok TSQL deyiminden oluşturulmuş bir gruptur. Access ön ucu ile SQL Server arka ucu arasında ara katman işlevi görür. Saklı yordamlar bir SELECT deyimi kadar basit veya herhangi bir program kadar karmaşık olabilir. İşte size bir örnek:

CREATE PROCEDURE HumanResources.uspGetEmployees   
    @LastName nvarchar(50),   
    @FirstName nvarchar(50)   
AS   
    SET NOCOUNT ON;  
    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
    AND EndDate IS NULL;  

Access'te saklı yordam kullandığınızda, genellikle forma veya rapora bir sonuç kümesi döndürür. Öte yandan, DDL veya DML deyimleri gibi sonuç döndürmeyen başka eylemler de gerçekleştirebilir. Doğrudan sorgu kullanırken Kayıt Döndür özelliğini gerektiği gibi ayarladığınızdan emin olun.

Daha fazla bilgi için bkz. Saklı yordamlar.

Ortak Tablo İfadeleri

Ortak Tablo İfadeleri (CTE), adlandırılmış bir sonuç kümesi döndüren geçici bir tabloya benzer. Tek bir sorgunun veya DML deyiminin yürütülmesi sırasında var olur. CTE, bunu kullanan SELECT deyimiyle veya DML deyimiyle aynı kod satırında oluşturulur; öte yandan geçici tablo veya görünüm oluşturmak ve kullanmak genellikle iki adımlı bir işlemdir. İşte size bir örnek:

-- Define the CTE expression name and column list.  
WITH Sales_CTE (SalesPersonID, SalesOrderID, SalesYear)  
AS  
-- Define the CTE query.  
(  
    SELECT SalesPersonID, SalesOrderID, YEAR(OrderDate) AS SalesYear  
    FROM Sales.SalesOrderHeader  
    WHERE SalesPersonID IS NOT NULL  
)  
-- Define the outer query referencing the CTE name.  
SELECT SalesPersonID, COUNT(SalesOrderID) AS TotalSales, SalesYear  
FROM Sales_CTE  
GROUP BY SalesYear, SalesPersonID  
ORDER BY SalesPersonID, SalesYear;

CTE'nin aşağıdakiler gibi çeşitli avantajları vardır:

  • CTE'ler geçici olduğundan, bunları görünümler gibi kalıcı veritabanı nesneleri olarak oluşturmanız gerekmez.

  • Sorguda veya DML deyiminde aynı CTE'ye birden çok kez başvurabilmeniz, kodunuzun daha kolay yönetilebilir olmasını sağlar.

  • İmleç tanımlamak için CTE'ye başvuran sorgular kullanabilirsiniz.

Daha fazla bilgi için bkz. WITH common_table_expression.

Kullanıcı Tanımlı İşlevler

Kullanıcı tanımlı işlevler (UDF) sorgu ve hesaplamalar gerçekleştirebilir ve skaler değerler veya veri sonuç kümeleri döndürür. Bunlar programlama dillerindeki parametre kabul eden, karmaşık hesaplama gibi bir eylem gerçekleştiren ve bu eylemin sonucunu değer olarak döndüren işlevlere benzer. İşte size bir örnek:

CREATE FUNCTION dbo.ISOweek (@DATE datetime)  
RETURNS int WITH SCHEMABINDING -- Helps improve performance
WITH EXECUTE AS CALLER  
AS  
BEGIN  
     DECLARE @ISOweek int;  
     SET @ISOweek= DATEPART(wk,@DATE)+1  
          -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104');  
-- Special cases: Jan 1-3 may belong to the previous year  
     IF (@ISOweek=0)   
          SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1   
               AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1;  
-- Special case: Dec 29-31 may belong to the next year  
     IF ((DATEPART(mm,@DATE)=12) AND   
          ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))  
          SET @ISOweek=1;  
     RETURN(@ISOweek);  
END;  
GO  
SET DATEFIRST 1;  
SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week';  

UDF'nin bazı sınırlamaları vardır. Örneğin, belirleyici olmayan bazı sistem işlevlerini kullanamaz, DML veya DDL deyimleri gerçekleştiremez ya da dinamik SQL sorguları yapamazlar.

Daha fazla bilgi için bkz. Kullanıcı Tanımlı İşlevler.

Sayfanın Başı

Anahtarlar ve dizinler ekleme

Hangi veritabanı sistemini kullanırsanız kullanın, anahtarlar ve dizinler birlikte bulunur.

Anahtarlar

SQL Server'da her tablo için birincil anahtarlar ve her ilgili tablo için yabancı anahtarlar oluşturduğunuzdan emin olun. Access Otomatik Sayı veri türüyle eşdeğer olan SQL Server özelliği, anahtar değerlerini oluşturmak için kullanılabilen IDENTITY özelliğidir. Bu özelliği herhangi bir sayısal sütuna uyguladığınızda, sütun salt okunur olur ve veritabanı sistemi tarafından korunur. IDENTITY sütunu içeren bir tabloya kayıt eklediğinizde, sistem IDENTITY sütununun değerini (1'den başlayarak) otomatik olarak 1 artırır ama bu değerleri bağımsız değişkenlerle denetleyebilirsiniz.

Daha fazla bilgi için bkz. CREATE TABLE, IDENTITY (Özellik).

Dizinler

Her zaman olduğu gibi dizinlerin seçimi sorgu hızıyla güncelleştirme maliyeti arasında dengeleyici bir harekettir. Access'te tek bir dizin türünüz varken SQL Server'da on iki tür vardır. Neyse ki güvenilir bir şekilde en etkili dizini seçmenize yardımcı olması için sorgu iyileştiricisini kullanabilirsiniz. Azure SQL'de de bir otomatik ayar özelliği olan ve sizin için dizinleri ekleme veya kaldırma önerileri sağlayan otomatik dizin yönetimini kullanabilirsiniz. Access'ten farklı olarak SQL Server'da yabancı anahtarlar için kendi dizinlerinizi oluşturmanız gerekir. Ayrıca, sorgu performansını geliştirmek için dizinli görünümde de dizinler oluşturabilirsiniz. Dizinli görünümün dezavantajı, görünümün temel tablolarındaki verilerde değişiklik yaptığınızda ek yükün artmasıdır çünkü görünümün de güncelleştirilmesi gerekir. Daha fazla bilgi için bkz. SQL Server Dizin Mimarisi ve Tasarım Kılavuzu ve Dizinler.

Sayfanın Başı

İşlemler yapma

Çevrimiçi İşlem Gerçekleştirme (OLTP) Access kullanırken zor olsa da, SQL Server'la görece kolaydır. İşlem, başarılı olduğunda tüm veri değişikliklerini işleyen ama başarısız olduğunda değişiklikleri geri alan tek bir çalışma birimidir. Bir işlemin dört özelliği olmalıdır ve buna genellikle ACID denir:

  • Bölünmezlik    İşlem, tüm veri değişikliklerinin yapıldığı veya hiçbir değişikliğin yapılmadığı bölünmez bir çalışma birimi olmalıdır.

  • Tutarlılık    İşlem tamamlandığında, tüm verileri tutarlı bir durumda bırakmalıdır. Başka bir deyişle tüm veri bütünlüğü kuralları uygulanır.

  • Bağımsızlık    Eş zamanlı işlemler tarafından yapılan değişiklikler geçerli işlemden bağımsız tutulur.

  • Kalıcılık    İşlem tamamlandıktan sonra, sistem hatası olduğunda bile değişiklikler kalıcıdır.

ATM'den para çekme veya maaş çekini hesaba otomatik geçirme gibi garantili veri bütünlüğü sağlamak için işlem kullanırsınız. Açık, örtülü veya toplu kapsamı olan işlemler yapabilirsiniz. Burada iki TSQL örneği verilmiştir:

-- Using an explicit transaction

BEGIN TRANSACTION;  
DELETE FROM HumanResources.JobCandidate  
    WHERE JobCandidateID = 13;  
COMMIT;  

-- the ROLLBACK statement rolls back the INSERT statement, but the created table still exists.

CREATE TABLE ValueTable (id int);  
BEGIN TRANSACTION;  
       INSERT INTO ValueTable VALUES(1);  
       INSERT INTO ValueTable VALUES(2);  
ROLLBACK;

Daha fazla bilgi için bkz. İşlemler.

Sayfanın Başı

Kısıtlamaları ve tetikleyicileri kullanma

Tüm veritabanlarında veri bütünlüğünü korumanın yolları vardır.

Kısıtlamalar

Access'te, tablo ilişkisinde yabancı anahtar-birincil anahtar eşlemelerini, basamaklı güncelleştirmeleri, silmeleri ve doğrulama kurallarını kullanarak bilgi tutarlılığını zorlarsınız. Daha fazla bilgi için bkz. Tablo ilişkileri kılavuzu ve Doğrulama kurallarını kullanarak veri girişini kısıtlama.

SQL Server'da UNIQUE ve CHECK kısıtlamalarını kullanırsınız. Bunlar, SQL Server tablolarında veri bütünlüğünü zorunlu tutan veritabanı nesneleridir. Bir değerin başka bir tabloda geçerli olduğunu doğrulamak için yabancı anahtar kısıtlamasını kullanın. Bir değerin tablo içinde geçerli olduğunu doğrulamak için CHECK kısıtlamasını kullanın. Bu nesneler ilk savunma hattını oluşturur ve verimli çalışacak şekilde tasarlanmıştır. Daha fazla bilgi için bkz. Unique Kısıtlamaları ve Check Kısıtlamaları.

Tetikleyiciler

Access'te veritabanı tetikleyicileri yoktur. SQL Server'da karmaşık veri bütünlüğü kurallarını zorlamak ve sunucuda bu iş mantığını çalıştırmak için tetikleyicileri kullanabilirsiniz. Veritabanı tetikleyicisi, veritabanının içinde belirli eylemler gerçekleştiğinde çalıştırılan bir saklı yordamdır. Tetikleyici bir tabloda kayıt ekleme veya silme gibi saklı yordamı çağıran ve sonra yürüten bir olaydır. Access veritabanı kullanıcı verileri güncelleştirmeyi veya silmeyi denediğinde bilgi tutarlılığını güvence altına alabilse de, SQL Server'ın gelişmiş bir tetikleyici kümesi vardır. Örneğin, kayıtları toplu olarak silmek ve veri bütünlüğünü güvence altına almak için bir tetikleyici programlayabilirsiniz. Tablolara ve görünümlere bile tetikleyici ekleyebilirsiniz.

Daha fazla bilgi için bkz. Tetikleyiciler - DML, Tetikleyiciler - DDL ve T-SQL tetikleyicisi tasarlama.

Sayfanın Başı

Hesaplanan sütunları kullanma

Access'te aşağıdaki gibi sütunu sorguya ekleyip bir ifade derleyerek hesaplanan sütun oluşturabilirsiniz:

Extended Price: [Quantity] * [Unit Price]

SQL Server'da buna eşdeğer özelliğin adı da hesaplanan sütundur; bu, PERSISTED olarak işaretlenmediği sürece tabloda fiziksel olarak depolanmayan sanal bir sütundur. Access'in hesaplanan sütunu gibi SQL Server'ın hesaplanan sütunu da ifadedeki diğer sütunların verilerini kullanır. Hesaplanan sütun oluşturmak için bunu bir tabloya ekleyin. Örneğin:

CREATE TABLE dbo.Products   
(  
    ProductID int IDENTITY (1,1) NOT NULL  
  , QtyAvailable smallint  
  , UnitPrice money  
  , InventoryValue AS QtyAvailable * UnitPrice  
);  

Daha fazla bilgi için bkz. Tabloda Hesaplanan Sütunlar Belirtme.

Sayfanın Başı

Verilerinize zaman damgası ekleme

Veri girdisini günlüğe alabilmek için bazen kaydın oluşturulduğu zamanın zaman damgasını kaydetmek üzere bir tablo alanı eklersiniz. Access'te =Now() varsayılan değeriyle doğrudan bir tarih sütunu oluşturabilirsiniz. SQL Server'da tarihi veya saati kaydetmek için SYSDATETIME() varsayılan değeriyle datetime2 veri türünü kullanın.

Not    Verilerinize zaman damgası eklemeyi rowversion ile karıştırmaktan kaçının. SQL Server'da timestamp (zaman damgası) anahtar sözcüğü rowversion ile eş anlamlıdır ama rowversion anahtar sözcüğünü kullanmanız gerekir. SQL Server'da rowversion bir veritabanının içindeki otomatik olarak oluşturulmuş, benzersiz ikili sayıları kullanıma sunar ve genel olarak tablo satırlarına sürüm damgası ekleme mekanizması olarak kullanılır. Öte yandan rowversion veri türü yalnızca artımlı bir sayıdır, tarih veya saat tutmaz ve satıra zaman damgası eklemek için tasarlanmamıştır.

Daha fazla bilgi için bkz. rowversion. Kayıt çakışmalarını en aza indirmek amacıyla rowversion kullanma hakkında daha fazla bilgi için bkz. Access veritabanını SQL Server'a geçirme.

Sayfanın Başı

Büyük nesneleri yönetme

Access'te dosyalar, fotoğraflar ve resimler gibi yapılandırılmamış verileri yönetmek için Ek veri türünü kullanırsınız. SQL Server terminolojisinde yapılandırılmamış veriler Blob (İkili Büyük Nesne) olarak adlandırılır ve bunlarla çalışmanın çeşitli yolları vardır:

FILESTREAM    Yapılandırılmamış verileri veritabanı yerine dosya sisteminde depolamak için değişken ikili(en fazla) veri türünü kullanır. Daha fazla bilgi için bkz. Transact-SQL ile Access FILESTREAM Verileri.

FileTable    Blobları FileTable olarak adlandırılan özel tablolarda depolar; bunlar dosya sisteminde depolanıyormuş gibi Windows uygulamalarıyla uyumluluk sağlar ve istemci uygulamalarınızda hiçbir değişiklik yapmaz. FileTable için FILESTREAM kullanılması gerekir. Daha fazla bilgi için bkz. FileTable.

Uzak BLOB deposu (RBS)    İkili büyük nesneleri (BLOB) doğrudan sunucu yerine emtia depolama çözümlerinde depolar. Bu şekilde alandan tasarruf sağlanır ve donanım kaynakları azalır. Daha fazla bilgi için bkz. İkili Büyük Nesne (Blob) Verileri.

Sayfanın Başı

Hiyerarşik verilerle çalışma

Access gibi ilişkisel veritabanları çok esnek olsa da, hiyerarşik ilişkilerle çalışmak özel bir durumdur ve çoğunlukla karmaşık SQL deyimleri veya kod gerektirir. Hiyerarşik veri örnekleri: kurumsal yapı, dosya sistemi, dil terimleri sınıflandırması ve Web sayfaları arasındaki bağlantıların grafiği. SQL Server'da hiyerarşik verileri kolayca depolamak, sorgulamak ve yönetmek için yerleşik hierarchyid veri türü ve bir dizi hiyerarşik işlev vardır.

Tipik bir hiyerarşi

Daha fazla bilgi için bkz. Hiyerarşik veriler ve Öğretici: Hierarchyid veri türünü kullanma.

Sayfanın Başı

JSON metnini işleme

JavaScript Nesne Gösterimi (JSON), zaman uyumsuz tarayıcı–sunucu iletişiminde verileri öznitelik–değer çiftleri olarak iletmek için insan tarafından okunabilir metinler kullanan bir web hizmetidir. Örneğin:

{
"firstName": "Mary",
"lastName": "Contrary",
"spouse": null,
"age": 27
}

Access'te JSON verilerini yönetmek için yerleşik yöntemler yoktur ama SQL Server'da JSON verilerini rahatça depolayabilir, dizine alabilir, sorgulayabilir ve ayıklayabilirsiniz. JSON metnini dönüştürüp bir tabloda depolayabilir veya verileri JSON metni olarak biçimlendirebilirsiniz. Örneğin, bir Web uygulaması için sorgu sonuçlarını JSON olarak biçimlendirmek veya satırlar ve sütunlara JSON veri yapıları eklemek isteyebilirsiniz.

Not    JSON, VBA'da desteklenmez. Alternatif olarak, VBA'da MSXML kitaplığı aracılığıyla XML kullanabilirsiniz.

Daha fazla bilgi için bkz. SQL Server'da JSON verileri.

Sayfanın Başı

Kaynaklar

Şu an SQL Server ve Transact SQL (TSQL) hakkında daha fazla bilgi edinmek için çok uygun bir zamandır. Sizin de gördüğünüz gibi Access'in özelliklerinden birçoğuna sahip olduğu gibi Access'te bulunmayan özelliklere de sahiptir. Gezintinizi bir sonraki düzeye çıkarmak için burada bazı eğitim kaynakları sağlanmıştır:

Kaynak

Açıklama

Transact-SQL ile sorgulama

Video kursu

Veritabanı Altyapısı Öğreticileri

SQL Server 2017 ile ilgili öğreticiler

Microsoft Learn

Azure için pratik öğrenme

SQL Server eğitim ve sertifikası

Uzman olma

SQL Server 2017

Ana giriş sayfası

SQL Server Belgeleri

Yardım bilgileri

Azure SQL Veritabanı Belgeleri

Yardım bilgileri

Buluttaki veriler için temel kılavuz (e-kitap)

Buluta genel bakış

SQL Server 2017 Veri Sayfası

Yeni özelliklerin görsel bir özeti

Microsoft SQL Server sürümünü karşılaştırma

Sürümlere göre özelliklerin özeti

Microsoft SQL Server Express Sürümleri

SQL Server Express 2017'yi indirme

SQL örnek veritabanları

Örnek veritabanlarını indirme

Sayfanın Başı

Office yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×