Selasa, 22 April 2014

SQL SERVER 2005 DAN SQL SERVER MANAGEMENT STUDIO



SEJARAH SQL SERVER 2005
SQL Server 2005 dirilis pada Oktober 2005, adalah penerus ke SQL Server 2000. Ini termasuk dukungan asli untuk mengelola XML data, di samping data relasional . Untuk tujuan ini, mendefinisikan sebuah xml tipe data yang dapat digunakan baik sebagai tipe data dalam kolom database atau sebagai literal dalam query. Kolom XML dapat dikaitkan dengan XSD schema, data XML yang disimpan adalah diverifikasi terhadap skema. XML dikonversi ke tipe data biner internal sebelum disimpan dalam database. Metode pengindeksan khusus dibuat tersedia untuk data XML. Query data XML menggunakan XQuery ; Common Language Runtime (CLR) integrasi fitur utama dengan edisi ini, memungkinkan seseorang untuk menulis kode SQL sebagai Kode Dikelola oleh CLR.  
SQL Server 2005 menambahkan beberapa ekstensi untuk T-SQL bahasa untuk memungkinkan embedding query XQuery di T-SQL. Di samping itu, juga mendefinisikan ekstensi baru untuk   XQuery, yang disebut XML DML, yang memungkinkan query berbasis modifikasi data XML. SQL Server 2005 juga memungkinkan server database yang akan terkena lebih dari layanan web menggunakan Streaming Tabel data (TDS) dikemas dalam paket SOAP (protokol) permintaan. Bila data yang diakses melalui layanan web, hasilnya dikembalikan sebagai XML.
Untuk data relasional, T-SQL telah ditambah dengan fitur penanganan error (coba / menangkap) dan dukungan untuk query rekursif dengan CTEs (Expressions Tabel common). SQL Server 2005 juga telah ditingkatkan dengan algoritma pengindeksan baru, sintaks dan kesalahan yang lebih baik sistem pemulihan. Halaman Data checksummed untuk ketahanan kesalahan yang lebih baik, dan dukungan konkurensi optimis telah ditambahkan untuk performa yang lebih baik. Izin dan kontrol akses telah dibuat lebih rinci dan prosesor menangani permintaan eksekusi bersamaan query dengan cara yang lebih efisien. Partisi pada tabel dan indeks yang didukung secara native, jadi scaling keluar database ke sebuah cluster yang lebih mudah. SQL CLR diperkenalkan dengan SQL Server 2005 untuk membiarkan hal itu mengintegrasikan dengan NET Framework.
SQL Server 2005 memperkenalkan "MARS" (Beberapa Aktif Hasil Set), sebuah metode yang memungkinkan penggunaan koneksi database untuk beberapa tujuan.
SQL Server 2005 memperkenalkan DMVs (Dilihat Manajemen Dinamis), yang pandangan khusus dan fungsi yang mengembalikan server informasi negara yang dapat digunakan untuk memantau kesehatan contoh server, mendiagnosa masalah, dan tune performa.
SQL Server 2005 Database Mirroring diperkenalkan, tapi itu tidak sepenuhnya didukung sampai rilis pertama Service Pack (SP1). Pada rilis awal (RTM) dari SQL Server 2005, mirroring database yang tersedia, namun tidak didukung. Dalam rangka mengimplementasikan mirroring database dalam versi RTM, Anda harus menerapkan melacak bendera 1400 pada saat startup. Database mirroring adalah pilihan ketersediaan tinggi yang menyediakan redundansi dan kemampuan failover pada tingkat database. Failover dapat dilakukan secara manual atau dapat dikonfigurasi untuk failover otomatis. Failover otomatis memerlukan mitra saksi dan modus operasi sinkron (juga dikenal sebagai keamanan yang tinggi-keamanan atau penuh).

1.      Pegertian SQL server 2005
Pada dasarnya pengertian dari SQL Server itu sendiri adalah bahasa yang dipergunakan untuk mengakses data dalam basis data relation. Bahasa ini secara defacto adalah bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini dalam manajemen datanya. SQL server 2005 merupakan salah satu produk dari Relational Database Management System (RDBMS).

2.      Komponen SQL server 2005
SQL Server 2005  terdiri atas beberapa komponen sebagai berikut:
a.       Relational Database Engine : komponen utama atau jantung SQL Server 2005.
b.      Analysis Services : Basis dari solusi intelijen bisnis yang ampuh (powerful), dan mendukung aplikasi-aplikasi OLAP (online analytical processing), serta data minning.
c.       Data Transformation Service (DTS): sebuah mesin untuk membuat solusi ekspor dan impor data, serta untuk mentransformasi data ketika data tersebut ditransfer.
d.      Notification Services: sebuah framework untuk solusi dimana pelanggan akan dikirimi notifikasi ketika sebuah event muncul.
e.       Reporting Services: service yang akan mengambil data dari SQL Server, dan menghasilkan laporan-laporan.
f.       Service broker: sebuah mekanisme antrian yang akan menangani komunikasi berbasis pesan diantara service.
g.       Native HTTP Support: dukungan yang memungkinkan SQL server 2005 yang (jika diinstall pada Windows Server 2003) akan merespon request terhadap HTTP endpoint, sehingga memungkinkan pembangunan sebuah web service untuk SQL Server tanpa menggunakan IIS.
h.      SQL server Agent : akan mengotomatiskan perawatan database dan mengatur task, event dan alert.
i.         NET CLR (Common Language Runtime): akan memungkinkan pembuatan solusi menggunakan managed code yang ditulis dalam salah satu bahasa .NET.
j.         Replication: serangkaian teknologi untuk menjalin dan mendistribusikan data dan obyek database dari sebuah database ke database lain, dan melakukan sinkronisasi untuk menjaga konsistensinya.
k.        Full-Text Search: memungkinkan pengindeksan yang cepat dan flexibel untuk query   berbasis kata kunci (terhadap data teks yang disimpan dalam database).

3.       Fitur untuk Administrasi Database
ü  Database Mirroring
Perluas log pengiriman kemampuan dengan solusi mirroring database. Anda akan dapat menggunakan mirroring database untuk meningkatkan ketersediaan sistem SQL Server Anda dengan mendirikan failover otomatis ke server siaga.
ü  Online Restore
Dengan SQL Server 2005, database administrator dapat melakukan restore operasi sementara instance dari SQL Server yang berjalan. Online mengembalikan meningkatkan ketersediaan SQL Server karena hanya data yang dipulihkan tidak tersedia, sisa database tetap online dan tersedia.
ü  Online Indexing Operations
Opsi Indeks online memungkinkan modifikasi concurrent (update, menghapus, dan menyisipkan) ke meja yang mendasari atau data clustered index dan setiap indeks terkait selama data indeks bahasa eksekusi (DDL) definisi. Sebagai contoh, sementara clustered index sedang dibangun kembali, Anda dapat terus memperbarui data yang meBndasari dan melakukan query terhadap data.
ü  Fast Recovery
Sebuah pilihan pemulihan baru yang lebih cepat meningkatkan ketersediaan database SQL Server. Administrator dapat menyambung kembali ke database pulih setelah log transaksi telah diperpanjang ke depan.
ü  Standards-based Information Access
Setiap objek, sumber data, atau komponen usaha intelijen bisa terkena menggunakan protokol berbasis standar seperti SOAP dan HTTP-menghilangkan kebutuhan pendengar yang tingkat menengah, seperti IIS, untuk mengakses antarmuka layanan Web yang terkena oleh SQL Server 2005.
ü  SQL Server Management Studio
SQL Server 2005 termasuk SQL Server Management Studio, sebuah suite terintegrasi baru alat manajemen dengan fungsi untuk mengembangkan, menyebarkan, dan atasi masalah database SQL Server, serta perangkat tambahan untuk fungsi sebelumnya.
ü  Dedicated Administrator Connection
SQL Server 2005 menyediakan koneksi administrator administrator khusus yang dapat digunakan untuk mengakses server yang menjalankan bahkan jika server terkunci atau tidak tersedia. Kemampuan ini memungkinkan administrator untuk memecahkan masalah pada server dengan menjalankan fungsi diagnostik atau pernyataan Transact-SQL.
ü  Snapshot Isolation
Snapshot Isolasi (SI) tingkat disediakan pada tingkat database. Dengan SI, pengguna dapat mengakses baris berkomitmen terakhir menggunakan pandangan transitionally konsisten database. This capability provides greater scalability. Kemampuan ini memberikan skalabilitas yang lebih besar.
ü  Data Partitioning
Data partisi ditingkatkan dengan tabel partisi asli dan indeks yang memungkinkan pengelolaan efisien tabel besar dan indeks.
ü  Replication Enhancements
Untuk database terdistribusi, SQL Server 2005 menyediakan skema komprehensif perubahan (DDL) replikasi, kemampuan pengawasan generasi berikutnya, dibangun pada replikasi dari Oracle ke SQL Server, menggabungkan replikasi lebih dari https, dan signifikan menggabungkan skalabilitas replikasi dan peningkatan kinerja. Selain itu, peer-to-peer fitur replikasi transaksional meningkatkan dukungan untuk skala data dengan menggunakan replikasi.




4.       pengembangan database baru, dengan fictur yang disediakan SQL server 2005
Fitur untuk Pengembang Database
v  Hosted Common Language Runtime
Dengan SQL Server 2005 pengembang dapat membuat objek database menggunakan bahasa asing seperti Microsoft Visual C # NET dan. Microsoft Visual Basic. Pengembang juga dapat membuat dua jenis benda-user-defined baru dan agregat.
v  Native XML Support
Native XML data dapat disimpan, tanya, dan diindeks dalam database SQL Server-memungkinkan pengembang untuk membangun kelas baru sekitar tersambung aplikasi layanan Web dan di setiap platform atau perangkat.
v  ADO.NET version 2.0
Dari dukungan baru untuk SQL Jenis untuk Hasil Multiple Set Aktif (MARS), ADO.NET di SQL Server 2005 berkembang Dataset akses dan manipulasi untuk mencapai skalabilitas dan fleksibilitas yang lebih besar.
v  Security Enhancements Keamanan Perangkat Tambahan
Model keamanan di SQL Server 2005 pengguna yang terpisah dari benda, menyediakan akses-butiran halus, dan memungkinkan kontrol yang lebih besar akses data. Selain itu, semua tabel sistem diimplementasikan sebagai pandangan, memberikan kontrol lebih atas objek sistem database.
v  Transact-SQL Enhancements
SQL Server 2005 menyediakan kemampuan bahasa baru untuk mengembangkan aplikasi database scalable. Peningkatan ini termasuk penanganan error, kemampuan query rekursif, PIVOT operator relasional, BERLAKU, ROW_NUMBER dan fungsi baris lainnya peringkat, dan banyak lagi.
v  Reliable Messaging for Asynchronous Applications
Layanan Broker merupakan infrastruktur olahpesan kuat yang menyediakan pengiriman transaksional yang dapat diandalkan pesan penting antara server-dengan kinerja tinggi scalable-yang diharapkan dengan antrian asynchronous.
v  Visual Studio Integration
Ketat integrasi dengan Microsoft Visual Studio dan NET Framework. Pembangunan arus dan debugging aplikasi berbasis data. Pengembang dapat membangun objek database, seperti prosedur yang tersimpan, dengan menggunakan bahasa apapun. NET dan mulus bisa debug di. NET dan Transact-SQL (TSQL) bahasa.

v  Web Services
Dengan SQL Server 2005 pengembang dapat mengembangkan layanan Web dalam database tier, membuat SQL Server protokol transfer hypertext (HTTP) pendengar dan menyediakan sebuah tipe baru kemampuan akses data untuk layanan-centric aplikasi Web.
v  Embedded Reports
Gunakan kontrol pelaporan sisi klien untuk laporan real-time embed ke aplikasi pada saat desain.
v  Full-Text Search Enhancements
SQL Server 2005 mendukung kaya, aplikasi penuh-teks pencarian  Katalogisasi kemampuan memberikan fleksibilitas yang lebih besar atas apa yang di katalog. Query kinerja dan skalabilitas telah meningkat secara dramatis, dan alat manajemen yang baru memberikan wawasan yang lebih besar ke dalam implementasi teks lengkap.

5. pengembang SQL server 2005 dan utilytas yang dapat digunakan untuk membangun solusi database
a.       SQL Server Management Studio
Ini adalah lingkungan pengembangan utama untuk SQL Server 2005. Developers can use it to create database solutions containing all of the scripts associated with a particular database. Pengembang dapat menggunakannya untuk menciptakan solusi database yang berisi semua script yang berhubungan dengan database tertentu. You can use this tool to create database applications graphically, or you can create, execute, and save scripts. Anda dapat menggunakan alat ini untuk membuat aplikasi database secara grafis, atau Anda dapat membuat, mengeksekusi, dan menyimpan script.

b.      Business Intelligence evelopment Studio
Digunakan untuk membuat Analisis solusi Layanan.

c.       sqlcmd SQLCMD
SQLCMD adalah sebuah utilitas baris perintah baru yang menggantikan isql dan osql. Hal ini memberikan peningkatan fungsionalitas dan kinerja lebih dari pendahulunya.



d.      Visual Studio designers
SQL Server 2005 menyediakan sejumlah desainer yang memperpanjang lingkungan Visual Studio dan membuatnya mudah untuk membangun SQL Server 2005 item seperti laporan dan objek database dikelola.

PENGERTIAN SERVER

Sebuah server yang terhubung hanya koneksi ke Object Linking dan Embedding Database (OLEDB) sumber data. Secara teknis, OLEDB adalah Microsoft standar API untuk mengambil data dari berbagai macam data. Kalau itu jelas sebagai lumpur, jangan khawatir. Kabar baiknya adalah bahwa hal itu cukup fleksibel untuk link ke format database dan non-database, seperti spreadsheet atau e-mail client. Sederhananya, SQL Server mendukung setiap penyedia OLEDB (juga disebut driver). Ada berita bagus lainnya: Anda dapat menggunakan Transact-SQL atau Management Studio untuk membuat koneksi. Setelah Anda membuat sebuah server yang terhubung, SQL Server dapat login ke database server lain. Itu berarti Anda dapat menjalankan query di server jauh. Anda memiliki dua jenis server yang terhubung query Anda inginkan: ad hoc dan permanen.

Ad hoc link

Secara teknis, Anda tidak akan menggunakan server yang terhubung panjang untuk mengidentifikasi sebuah query ad hoc. Istilah yang benar-benar mengacu ke objek SQL Server. Namun, Anda akan sering melihat istilah yang digunakan untuk merujuk kepada sebuah permintaan ad hoc terkait. Query ad hoc membuka dan menutup koneksi. Sebuah server yang terhubung permanen selalu tersedia. Gunakan OPENROWSET untuk tugas-tugas terkait jarang terjadi, dengan menggunakan sintaks berikut:
  OPENROWSET ('providername', 'sumber data', 'username', 'password', objek) 
Link OPENROWSET mengkonsumsi lebih sedikit ruang dalam database Anda. Gunakan berlaku Transact-SQL untuk memanipulasi data yang diambil. Argumen yang cukup jelas, tapi ingat bahwa sumber data adalah jalan penuh sumber, bukan hanya nama file. Selain itu, penyedia menyediakan petunjuk bahwa SQL Server perlu masuk dan mengambil data. Mereka khusus untuk perangkat lunak asing Anda mengakses.
Sekarang, mari kita lihat query gadaian iklan sederhana yang memilih semua record dari tabel Karyawan di database Access sampel Microsoft, Northwind:
  
Gambar A menunjukkan hasil cepat diambil, yang tergantung pada pengguna (admin) yang memiliki hak akses yang sesuai. (Jika Anda ingin menjalankan query ini, pastikan untuk memperbarui jalan ke Northwind.mdb untuk mengakomodasi sistem Anda.) Penyedia string adalah khusus untuk mesin data, Jet. Kata kunci SEBAGAI memberikan nama untuk tabel baru di dalam SQL Server.
Jika permintaan ad hoc kembali kesalahan, Anda mungkin perlu untuk mengaktifkan fitur ad hoc query. (SQL Server menonaktifkan secara default.) Untuk mengaktifkan ad hoc query, jalankan SQL Server Configuration Manager (SQL Server Permukaan Kawasan Konfigurasi utilitas dalam edisi Express). Klik Konfigurasi Permukaan Kawasan Untuk menghubungkan Fitur dan memeriksa OPENROWSET Aktifkan Dan opendatasource Dukungan pilihan. Kemudian, klik OK dan tutup utilitas. Atau, menjalankan prosedur yang tersimpan sp_configure.

Permanen link

Objek server yang terhubung SQL Server menciptakan link permanen ke server remote. Ketika user log in, SQL Server juga log ke remote server. Langkah pertama untuk mengambil data asing melalui sebuah server yang terhubung adalah untuk membiarkan SQL Server tahu bahwa Anda berencana untuk berbicara dengan sumber lain (server).
 

Mengambil data

Setelah server yang terhubung ada, Anda dapat menggunakannya untuk query data, sama seperti jika Anda bekerja dengan tabel SQL Server  hasil mengambil semua catatan karyawan dari Northwind menggunakan pernyataan SQL melalui sebuah server yang terhubung bernama NorthwindDemo.:
  SELECT * FROM NorthwindDemo ... Karyawan 
Ketika query data melalui server ExcelData terkait, termasuk kisaran bernama sebagai berikut:
  SELECT * 
  DARI ExcelData, Karyawan 
 

  Protokol lapisan

Mengimplementasikan protokol lapisan antarmuka eksternal ke SQL Server. Semua operasi yang dapat dipanggil pada SQL Server dikomunikasikan ke melalui format Microsoft-didefinisikan, disebut Tabel data Streaming (TDS). TDS adalah lapisan protokol aplikasi, yang digunakan untuk mentransfer data antara database server dan klien. Awalnya dirancang dan dikembangkan oleh Sybase Inc untuk mereka Sybase SQL Server mesin database relasional pada tahun 1984, dan kemudian oleh Microsoft di Microsoft SQL Server, TDS paket dapat terbungkus dalam lain protokol transportasi fisik bergantung, termasuk TCP / IP , Bernama pipa , dan Bersama memori . Akibatnya, akses ke SQL Server tersedia lebih dari protokol ini. Selain itu, SQL Server API juga terkena lebih dari layanan web .

Penyimpanan Data

Unit utama dari penyimpanan data adalah basis data , yang merupakan koleksi dari tabel dengan diketik kolom. SQL Server mendukung tipe data yang berbeda, termasuk jenis utama seperti Integer, Float, Desimal, Char (termasuk string karakter), varchar (panjang variabel string karakter), biner (untuk terstruktur gumpalan data), Text (untuk data tekstual) antara lain . Para pembulatan untuk bilangan bulat mengapung menggunakan baik Pembulatan Aritmatika Symmetric atau Symmetric Putaran Bawah (Perbaiki) tergantung pada argumen: SELECT Round(2.5, 0) memberikan 3.
Microsoft SQL Server juga memungkinkan user-defined jenis komposit (UDT) untuk didefinisikan dan digunakan. Hal ini juga membuat statistik server yang tersedia sebagai tabel virtual dan pandangan (disebut Views Manajemen Dinamis atau DMVs). Selain tabel, database juga dapat berisi objek lain termasuk pandangan , prosedur tersimpan , indeks dan kendala , bersama dengan log transaksi. Sebuah database dapat berisi SQL Server maksimum 2 31 objek, dan dapat span beberapa OS-tingkat file dengan ukuran file maksimum 2 20 TB . [30] Data dalam database disimpan dalam file data primer dengan ekstensi .mdf . Data sekunder file, diidentifikasi dengan .ndf ekstensi, digunakan untuk menyimpan metadata opsional. File log diidentifikasi dengan .ldf ekstensi.
Ruang penyimpanan yang dialokasikan ke database dibagi ke halaman berurutan nomor, masing-masing 8 KB. Sebuah halaman adalah unit dasar I / O untuk operasi SQL Server. Sebuah halaman ditandai dengan sebuah header 96-byte yang menyimpan metadata tentang halaman termasuk jumlah halaman, jenis halaman, ruang bebas pada halaman dan ID dari objek yang memiliki itu. Jenis halaman mendefinisikan data yang terdapat dalam halaman - data yang disimpan dalam, database indeks peta, alokasi yang menyimpan informasi tentang bagaimana halaman dialokasikan untuk tabel dan indeks, peta perubahan yang menyimpan informasi tentang perubahan yang dibuat ke halaman lain karena cadangan terakhir atau penebangan , atau mengandung jenis data yang besar seperti gambar atau teks. Ketika halaman adalah unit dasar dari operasi I / O, ruang benar-benar berhasil dalam hal rupa yang terdiri dari 8 halaman. Sebuah objek database dapat span semua 8 halaman dalam taraf tertentu ("sejauh seragam") atau berbagi batas dengan hingga 7 objek lebih ("sejauh campuran"). Sebuah baris dalam tabel database tidak dapat span lebih dari satu halaman, sehingga terbatas untuk 8 KB. Namun, jika data melebihi 8 KB dan baris berisi varchar atau data varbinary, data dalam kolom-kolom dipindahkan ke halaman baru (atau mungkin urutan halaman, disebut unit Alokasi) dan diganti dengan pointer ke data.
Untuk penyimpanan fisik tabel, baris yang dibagi menjadi serangkaian partisi (nomor 1 sampai n). Ukuran partisi ditentukan pengguna, secara default semua baris dalam partisi tunggal. Sebuah tabel dibagi menjadi beberapa partisi dalam rangka menyebarkan database melalui klaster . Baris dalam setiap partisi disimpan di salah satu pohon B- atau tumpukan struktur. Jika tabel memiliki terkait indeks untuk memungkinkan pengambilan cepat baris, baris disimpan di-order sesuai dengan nilai-nilai indeks mereka, dengan pohon B-memberikan indeks. Data dalam node daun daun, dan node lain menyimpan nilai indeks untuk dicapai daun data dari node masing-masing. Jika indeks adalah non-cluster, baris tidak diurutkan sesuai dengan kunci indeks. Sebuah diindeks melihat memiliki struktur penyimpanan yang sama sebagai meja diindeks. Sebuah meja tanpa indeks disimpan dalam struktur tumpukan unordered. Kedua tumpukan dan B-pohon dapat span beberapa unit alokasi.

 Logging dan Transaksi

SQL Server memastikan bahwa setiap perubahan data ACID -compliant, yaitu menggunakan transaksi untuk memastikan bahwa database akan selalu kembali ke keadaan yang konsisten dikenal pada kegagalan. Setiap transaksi dapat terdiri dari beberapa pernyataan SQL yang semuanya hanya akan membuat perubahan permanen ke database jika pernyataan terakhir dalam transaksi (pernyataan COMMIT) selesai dengan sukses. Jika berhasil menyelesaikan COMMIT transaksi aman pada disk.
SQL Server menerapkan transaksi menggunakan log menulis-depan.
Setiap perubahan yang dibuat ke halaman apapun akan memperbarui cache di memori halaman, secara bersamaan semua operasi yang dilakukan akan ditulis ke log, bersama dengan ID transaksi yang operasi merupakan bagian dari. Setiap entri log diidentifikasi oleh Sequence Number Login meningkat (LSN) yang digunakan untuk memastikan bahwa semua perubahan ditulis ke file data. Juga selama log mengembalikannya digunakan untuk memeriksa bahwa tidak ada log yang digandakan atau dilewati. SQL Server membutuhkan bahwa log ditulis ke disk sebelum halaman data ditulis kembali. Hal ini juga harus memastikan bahwa semua operasi dalam suatu transaksi ditulis ke log sebelum operasi COMMIT dilaporkan sebagai selesai.
Pada titik kemudian server akan pos pemeriksaan database dan memastikan bahwa semua halaman dalam file data memiliki keadaan isinya disinkronisasi ke titik di atau setelah LSN bahwa pos pemeriksaan dimulai. Ketika selesai tanda pos pemeriksaan yang sebagian dari file log sebagai lengkap dan mungkin bebas (lihat transaksi Sederhana penebangan penebangan vs transaksi Kendali). Hal ini memungkinkan SQL Server untuk memastikan integritas data, bahkan jika sistem gagal.
Pada kegagalan log database harus diputar untuk memastikan file-file data dalam keadaan konsisten. Semua halaman disimpan dalam gulungan maju bagian dari log (tidak ditandai sebagai selesai) ditulis ulang ke database, ketika akhir log tercapai semua transaksi terbuka digulung kembali menggunakan bagian memutar kembali dari file log.
Mesin database biasanya pos-pos pemeriksaan cukup sering. Namun, dalam sebuah database dimuat berat ini dapat memiliki dampak kinerja yang signifikan. Hal ini dimungkinkan untuk mengurangi frekuensi pemeriksaan atau menonaktifkan mereka sepenuhnya tapi rollforward selama pemulihan akan memakan waktu lebih lama.

Concurrency dan mengunci

SQL Server memungkinkan beberapa klien untuk menggunakan database yang sama secara bersamaan. Dengan demikian, perlu untuk mengontrol akses bersamaan ke data bersama, untuk memastikan integritas data - ketika beberapa klien memperbarui data yang sama, atau klien mencoba untuk membaca data yang ada di proses yang diubah oleh klien lain. SQL Server menyediakan dua mode kontrol konkurensi: konkurensi pesimis dan konkurensi optimis . Ketika kontrol konkurensi pesimis sedang digunakan, SQL Server kontrol akses konkuren dengan menggunakan kunci. Kunci dapat berupa bersama atau eksklusif. Kunci eksklusif hibah akses pengguna eksklusif untuk data - tidak ada pengguna lain dapat mengakses data selama mengunci diadakan. Berbagi kunci digunakan ketika beberapa data sedang dibaca - beberapa pengguna dapat membaca dari data terkunci dengan kunci bersama, tetapi tidak memperoleh kunci eksklusif. Yang terakhir harus menunggu untuk semua berbagi kunci akan dirilis. Kunci dapat diterapkan pada berbagai tingkat granularity - pada tabel keseluruhan, halaman, atau bahkan pada basis per-baris pada tabel. Untuk indeks, baik itu dapat di indeks seluruh atau pada daun indeks. Tingkat granularity yang akan digunakan adalah didefinisikan pada basis per-database oleh database administrator. Sementara sistem penguncian berbutir halus memungkinkan lebih banyak pengguna untuk menggunakan tabel atau indeks secara bersamaan, itu membutuhkan lebih banyak sumber daya. Jadi tidak secara otomatis berubah menjadi solusi berkinerja tinggi. SQL Server juga mencakup dua lebih ringan saling pengecualian solusi - kait dan spinlocks - yang kurang kuat daripada kunci tetapi sumber daya kurang intensif. SQL Server menggunakan mereka untuk DMVs dan sumber daya lainnya yang biasanya tidak sibuk. SQL Server juga memonitor semua benang pekerja yang memperoleh kunci untuk memastikan bahwa mereka tidak berakhir di kebuntuan - dalam hal mereka lakukan, SQL Server mengambil langkah-langkah perbaikan, yang dalam banyak kasus adalah untuk membunuh salah satu benang terjerat dalam kebuntuan dan rollback transaksi itu mulai. [30] Untuk menerapkan penguncian, berisi SQL Server Manager Kunci. Manajer Kunci mempertahankan tabel dalam memori yang mengelola objek database dan kunci, jika ada, pada mereka beserta metadata lain tentang kunci. Akses ke setiap objek bersama dimediasi oleh manajer kunci, yang bisa memberikan akses ke sumber daya atau blok itu.
SQL Server juga menyediakan mekanisme kontrol konkurensi optimis, yang mirip dengan kontrol konkurensi multiversion digunakan dalam database lainnya. Mekanisme ini memungkinkan versi baru dari suatu baris yang akan dibuat setiap kali baris diperbarui, sebagai lawan Timpa baris, yaitu, berturut-turut adalah tambahan diidentifikasi oleh ID dari transaksi yang menciptakan versi baris. Baik yang lama maupun versi baru dari baris disimpan dan dipelihara, meskipun versi lama pindah dari database ke dalam sistem database diidentifikasi sebagai Tempdb . Ketika berturut-turut adalah dalam proses sedang diperbarui, permintaan lain tidak diblokir (tidak seperti mengunci) tetapi dijalankan pada versi yang lebih tua dari baris. Jika permintaan lain adalah pernyataan update, itu akan menghasilkan dua versi yang berbeda dari baris -. Keduanya akan disimpan oleh database, diidentifikasi oleh ID masing-masing transaksi.

Data pengambilan

Modus utama dari mengambil data dari database SQL Server query untuk itu. Query tersebut dinyatakan dengan menggunakan varian dari SQL yang disebut T-SQL , dialek saham Microsoft SQL Server dengan SQL Server Sybase karena warisan. Query declaratively menentukan apa yang akan diambil. Hal ini diproses oleh prosesor query, yang angka keluar urutan langkah-langkah yang akan diperlukan untuk mengambil data yang diminta. Urutan tindakan yang diperlukan untuk mengeksekusi query disebut rencana permintaan. Mungkin ada beberapa cara untuk memproses query yang sama. Sebagai contoh, untuk sebuah query yang berisi bergabung pernyataan dan pilih pernyataan, mengeksekusi bergabung pada kedua tabel dan kemudian melaksanakan pilih pada hasil akan memberikan hasil yang sama seperti memilih dari meja masing-masing dan kemudian melaksanakan bergabung, tetapi menghasilkan eksekusi yang berbeda rencana. Dalam hal demikian, SQL Server memilih rencana yang diharapkan akan menghasilkan hasil dalam waktu sesingkat mungkin. Ini disebut optimasi query dan dilakukan oleh prosesor query itu sendiri.
SQL Server termasuk optimizer berbasis biaya permintaan yang mencoba untuk mengoptimalkan biaya, dalam hal sumber daya yang diperlukan untuk mengeksekusi query. Mengingat query, maka query optimizer terlihat pada skema database , statistik database dan beban sistem pada waktu itu. Ia kemudian memutuskan mana urutan untuk mengakses tabel dimaksud dalam query, yang urutan untuk melaksanakan operasi dan apa metode akses yang akan digunakan untuk mengakses tabel. Sebagai contoh, jika tabel memiliki indeks yang terkait, apakah index harus digunakan atau tidak - jika indeks pada kolom yang tidak unik untuk sebagian besar kolom (rendah "selektivitas"), itu tidak mungkin bermanfaat untuk menggunakan indeks untuk mengakses data. Akhirnya, ia memutuskan apakah akan mengeksekusi query secara bersamaan atau tidak. Sementara eksekusi konkuren lebih mahal dalam hal waktu prosesor total, karena eksekusi sebenarnya dibagi ke prosesor yang berbeda mungkin berarti itu akan mengeksekusi lebih cepat. Setelah rencana query dihasilkan untuk query, itu adalah sementara cache. Untuk pemanggilan lebih lanjut dari query yang sama, rencana cache digunakan. Rencana yang tidak terpakai dibuang setelah beberapa waktu.
SQL Server juga memungkinkan prosedur tersimpan untuk didefinisikan. Prosedur yang tersimpan parameter T-SQL query, yang disimpan di server sendiri (dan tidak dikeluarkan oleh aplikasi klien seperti halnya dengan permintaan umum). Prosedur yang tersimpan dapat menerima nilai-nilai yang dikirim oleh klien sebagai parameter masukan, dan mengirim kembali hasil sebagai parameter output. Mereka dapat memanggil fungsi-fungsi didefinisikan, dan prosedur yang tersimpan lainnya, termasuk prosedur yang tersimpan yang sama (sampai jumlah set kali). Mereka dapat selektif diberikan akses ke . Tidak seperti pertanyaan lain, prosedur yang tersimpan memiliki nama yang terkait, yang digunakan pada saat runtime untuk menyelesaikan ke dalam query yang sebenarnya. Juga karena kode tidak perlu dikirim dari klien setiap kali (karena dapat diakses dengan nama), mengurangi lalu lintas jaringan dan agak meningkatkan kinerja. [43] Pelaksanaan rencana untuk disimpan prosedur juga cache yang diperlukan.



 SQL CLR

Microsoft SQL Server 2005 mencakup komponen bernama SQL CLR ("Common Language Runtime") melalui yang terintegrasi dengan NET Framework. . Tidak seperti kebanyakan aplikasi lain yang menggunakan. NET Framework, SQL Server itu sendiri host NET Framework. runtime , yaitu, memori, threading dan persyaratan manajemen sumber daya NET Framework. dipenuhi oleh SQLOS sendiri, bukan sistem operasi Windows yang mendasarinya. SQLOS menyediakan deteksi kebuntuan dan layanan resolusi untuk kode NET juga.. Dengan SQL CLR, prosedur yang tersimpan dan memicu dapat ditulis dalam dikelola bahasa. NET , termasuk C # dan VB.NET . kode Dikelola juga dapat digunakan untuk mendefinisikan itu UDT ( jenis pengguna didefinisikan ), yang dapat bertahan dalam database. kode Managed adalah dikompilasi untuk majelis NET. dan setelah diverifikasi untuk keselamatan jenis , terdaftar di database. Setelah itu, mereka dapat dipanggil seperti prosedur lainnya. [44] Namun, hanya sebuah subset dari Base Class Library tersedia, ketika menjalankan kode di bawah SQL CLR. API yang paling berkaitan dengan antarmuka pengguna fungsionalitas tidak tersedia.
Ketika menulis kode untuk SQL CLR, data yang disimpan dalam database SQL Server dapat diakses menggunakan ADO.NET API seperti yang lain dikelola aplikasi yang mengakses data SQL Server. Namun, melakukan yang menciptakan sesi database baru, yang berbeda dari yang di mana kode ini mengeksekusi. Untuk menghindari hal ini, SQL Server menyediakan beberapa perangkat tambahan ke ADO.NET penyedia yang memungkinkan koneksi yang akan diarahkan ke sesi yang sama yang sudah host kode yang berjalan. Koneksi semacam ini disebut koneksi konteks dan ditetapkan dengan menetapkan context connection parameter untuk true dalam connection string. SQL Server juga menyediakan beberapa perangkat tambahan lain ke ADO.NET API, termasuk kelas untuk bekerja dengan data tabular atau satu baris data serta kelas untuk bekerja dengan metadata internal tentang data yang disimpan dalam database. Hal ini juga menyediakan akses ke fitur XML di SQL Server, termasuk XQuery dukungan. Peningkatan ini juga tersedia di T-SQL Prosedur konsekuensi dari pengenalan baru XML Datatype (permintaan, nilai, fungsi node).

Layanan Broker

Digunakan di dalam contoh, digunakan untuk menyediakan lingkungan pemrograman asynchronous. Untuk aplikasi Misalnya lintas, Layanan Broker berkomunikasi melalui TCP / IP dan memungkinkan komponen-komponen yang berbeda untuk disinkronkan bersama-sama, melalui pertukaran pesan. Broker Service, yang berjalan sebagai bagian dari mesin database, menyediakan pesan yang dapat diandalkan dan pesan antrian platform untuk aplikasi SQL Server.

Layanan Replikasi

Layanan Replikasi SQL Server yang digunakan oleh SQL Server untuk meniru dan sinkronisasi objek database, baik secara keseluruhan atau bagian dari objek ini, seluruh agen replikasi, yang mungkin server database lain di jaringan, atau cache database pada sisi klien. Replikasi mengikuti model penerbit / pelanggan, yaitu, perubahan dikirim oleh satu server database ("penerbit") dan diterima oleh orang lain ("pelanggan"). SQL Server mendukung tiga

Analisis Layanan

SQL Server Analysis Services menambahkan OLAP dan data mining kemampuan untuk database SQL Server. Mesin OLAP mendukung MOLAP , ROLAP dan HOLAP mode penyimpanan data. Analysis Services mendukung XML untuk Analisis standar sebagai protokol komunikasi yang mendasarinya. Data kubus dapat diakses menggunakan MDX dan LINQ  query. Data mining fungsionalitas tertentu terkena melalui DMX bahasa query. Layanan analisis meliputi berbagai algoritma - pohon Keputusan , algoritma clustering, Naif Bayes algoritma, analisis time series, urutan algoritma clustering, linear dan logistik regresi analisis, dan jaringan saraf - untuk digunakan dalam data mining.
                        

Pelaporan Layanan

SQL Server Reporting Services adalah lingkungan untuk generasi laporan data yang dikumpulkan dari database SQL Server. Hal ini diberikan melalui antarmuka web . Pelaporan layanan fitur layanan web antarmuka untuk mendukung pengembangan aplikasi laporan kustom. Laporan dibuat sebagai RDL file.
Laporan dapat didesain menggunakan versi terbaru dari Microsoft Visual Studio (Visual Studio.NET 2003, 2005, dan 2008) dengan Bisnis Intelligence Development Studio , diinstal atau dengan disertakan Laporan Builder . Setelah dibuat, file RDL dapat diberikan dalam berbagai format termasuk Excel, PDF , CSV , XML , TIFF.

Pemberitahuan Layanan

Awalnya diperkenalkan sebagai pos-release add-on untuk SQL Server 2000, Pemberitahuan Layanan ini dipaketkan sebagai bagian dari platform Microsoft SQL Server untuk pertama kalinya dan hanya dengan SQL Server 2005. Dengan Sql Server 2005, SQL Server Pemberitahuan Services adalah sebuah mekanisme untuk menghasilkan data-driven pemberitahuan, yang dikirim ke pelanggan Pemberitahuan Layanan. Seorang pelanggan mendaftar untuk acara tertentu atau transaksi (yang terdaftar pada database server sebagai pemicu), ketika peristiwa itu terjadi, Layanan Pemberitahuan dapat menggunakan salah satu dari tiga metode untuk mengirim pesan ke pelanggan menginformasikan tentang terjadinya peristiwa tersebut. Metoyde-metode ini termasuk SMTP, SOAP, atau dengan menulis ke file di filesystem. [61] Pemberitahuan Layanan dihentikan oleh Microsoft dengan merilis SQL Server 2008 pada bulan Agustus 2008, dan tidak lagi komponen resmi didukung database SQL Server platform.

Layanan Integrasi

SQL Server Integration Services digunakan untuk mengintegrasikan data dari sumber data yang berbeda. Hal ini digunakan untuk ETL kemampuan untuk SQL Server untuk data pergudangan kebutuhan. Layanan Integrasi termasuk alat GUI untuk membangun data ekstraksi alur kerja berbagai fungsi integrasi seperti penggalian data dari berbagai sumber, query data, transformasi data termasuk menggabungkan, duplikasi dan penggabungan data, dan kemudian loading data ditransformasikan ke sumber lain, atau mengirim e-mail merinci status operasi seperti yang didefinisikan oleh pengguna.

Layanan Teks Pencarian Penuh

Description: http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/SQL_Server_FTS.svg/250px-SQL_Server_FTS.svg.png
Description: http://bits.wikimedia.org/skins-1.18/common/images/magnify-clip.png
SQL Server layanan Pencarian Teks Penuh adalah pengindeksan khusus dan layanan query untuk teks tidak terstruktur disimpan dalam database SQL Server. Indeks pencarian teks lengkap dapat dibuat pada setiap kolom dengan data teks berbasis karakter. Hal ini memungkinkan untuk kata-kata yang akan dicari pada kolom teks. Meskipun dapat dilakukan dengan SQL LIKE operator, menggunakan SQL Server layanan Teks Pencarian Penuh dapat lebih efisien. Kendali memungkinkan untuk pencocokan eksak dari string sumber, ditunjukkan dengan nilai Peringkat yang dapat berkisar dari 0 sampai 1000 - peringkat yang lebih tinggi berarti pertandingan yang lebih akurat. Hal ini juga memungkinkan pencocokan linguistik ("pencarian infleksional"), yaitu, varian linguistik kata (seperti kata kerja dalam bentuk waktu yang berbeda) juga akan menjadi pertandingan untuk kata tertentu (tapi dengan peringkat lebih rendah daripada yang sama persis). Kedekatan pencarian juga didukung, yaitu, jika kata-kata mencari tidak terjadi dalam urutan mereka ditentukan dalam query tetapi dekat satu sama lain, mereka juga dianggap cocok. T-SQL mengekspos operator khusus yang dapat digunakan untuk mengakses kemampuan FTS.
Mesin Full Text Cari dibagi menjadi dua proses - proses Daemon Filter ( msftefd.exe ) dan proses pencarian ( msftesql.exe ). Proses ini berinteraksi dengan SQL Server. Proses Pencarian mencakup pengindeks (yang menciptakan indeks teks lengkap) dan prosesor teks lengkap query. Indexer scan melalui kolom teks dalam database. Hal ini juga dapat mengindeks melalui kolom biner, dan menggunakan iFilters untuk mengambil teks berarti dari gumpalan biner (misalnya, ketika Microsoft Word dokumen disimpan sebagai file biner tidak terstruktur dalam database). Para iFilters-host oleh proses Daemon Filter. Setelah teks diekstrak, proses Daemon Filter istirahat itu menjadi urutan kata-kata dan tangan itu ke indexer. Pengindeks filter kata-kata kebisingan, yaitu, kata-kata seperti A, Dan lain-lain, yang sering terjadi dan tidak berguna untuk pencarian. Dengan kata-kata yang tersisa, sebuah inverted index dibuat, mengasosiasikan setiap kata dengan kolom mereka ditemukan masuk SQL Server itu sendiri mencakup komponen Pengumpul yang memantau perubahan tabel dan memanggil pengindeks dalam kasus update.
Ketika query teks lengkap diterima oleh prosesor query SQL Server, itu diserahkan kepada query processor FTS dalam proses Pencarian. Query processor FTS memecah query ke dalam kata-kata konstituen, menyaring kata-kata kebisingan, dan menggunakan built-in tesaurus untuk mengetahui varian linguistik untuk setiap kata. Kata-kata tersebut kemudian bertanya terhadap indeks terbalik dan peringkat akurasi mereka dihitung. Hasil dikembalikan ke klien melalui proses SQL Server.