Kemampuan multi-model dari Azure SQL Database dan SQL Managed Instance

Berlaku untuk:Azure SQL DatabaseAzure SQL Managed Instance

Database multi-model memungkinkan Anda untuk menyimpan dan bekerja dengan data dalam beberapa format, seperti data relasional, grafik, dokumen JSON atau XML, data simpan, dan pasangan kunci-nilai.

Rangkaian produk Azure SQL menggunakan model relasional yang memberikan performa terbaik dalam berbagai aplikasi bertujuan umum. Namun, produk Azure SQL seperti Azure SQL Database dan SQL Managed Instance tidak terbatas pada data relasional. Rangkaian produk Azure SQL memungkinkan Anda menggunakan format non-relasional yang terintegrasi erat ke dalam model relasional.

Pertimbangkan untuk menggunakan kemampuan multi-model Azure SQL pada kasus berikut:

  • Anda memiliki beberapa informasi atau struktur yang lebih cocok untuk model NoSQL, dan Anda tidak ingin menggunakan {i>database
  • Sebagian besar data Anda cocok untuk model relasional, dan Anda perlu membuat model beberapa bagian data Anda dalam gaya NoSQL.
  • Anda ingin menggunakan bahasa T-SQL untuk mengkueri dan menganalisis data relasional dan NoSQL, lalu mengintegrasikan data tersebut dengan berbagai alat dan aplikasi yang dapat menggunakan bahasa SQL.
  • Anda ingin menerapkan fitur database seperti teknologi dalam memori untuk meningkatkan performa analitik Anda atau pemrosesan struktur data NoSQL Anda. Anda dapat menggunakan replikasi transaksional atau replika yang dapat dibaca untuk membuat salinan data Anda dan membongkar beberapa beban kerja analitik dari database utama.

Bagian berikut menjelaskan kemampuan multi-model yang paling penting dari Azure SQL.

Catatan

Anda dapat menggunakan ekspresi JSONPath, ekspresi XQuery/JalurX, fungsi spasial, dan ekspresi kueri grafik dalam kueri T-SQL yang sama untuk mengakses data apa pun yang Anda simpan di {i>databaseAzure Cosmos DB, yang menyediakan API khusus untuk model data.

Fitur Microsoft Azure AD Graph

Produk Azure SQL menawarkan kemampuan {i>database database

Berikut adalah beberapa fitur yang membuat database grafik unik:

  • Tepi adalah entitas kelas pertama dalam {i>database
  • Satu tepi dapat secara fleksibel menyambungkan beberapa simpul dalam {i>database
  • Anda dapat mengekspresikan kueri pencocokan pola dan navigasi multi-hop dengan mudah.
  • Anda dapat mengekspresikan kueri penutupan transitif dan polimorf dengan mudah.

Hubungan grafik dan kemampuan kueri grafik diintegrasikan ke dalam Transact-SQL dan menerima manfaat menggunakan mesin database SQL Server sebagai sistem manajemen database dasar. Fitur grafik menggunakan kueri T-SQL standar yang disempurnakan dengan operator MATCH grafik untuk meminta data grafik.

{i>Database database

  • Anda perlu memodelkan data hierarkis di mana satu simpul dapat memiliki banyak induk, sehingga Anda tidak dapat menggunakan tipe data hierarchyld.
  • Aplikasi Anda memiliki hubungan banyak-ke-banyak yang kompleks. Seiring perkembangan aplikasi, hubungan baru ditambahkan.
  • Anda perlu menganalisis data dan hubungan yang saling tersambung.
  • Anda ingin menggunakan kondisi pencarian T-SQL khusus grafik seperti SHORTEST_PATH.

Fitur JSON

Dalam produk Azure SQL, Anda dapat mengurai dan mengkueri data yang ditampilkan dalam format JavaScript Object Notation (JSON), dan mengekspor data relasional Anda sebagai teks JSON. JSON adalah fitur inti dari mesin database SQL Server.

Fitur JSON memungkinkan Anda untuk menempatkan dokumen JSON dalam tabel, mengubah data relasional menjadi dokumen JSON, dan mengubah dokumen JSON menjadi data relasional. Anda dapat menggunakan bahasa T-SQL standar yang ditingkatkan dengan fungsi JSON untuk menguraikan dokumen. Anda juga dapat menggunakan indeks non-kluster, indeks penyimpan kolom, atau tabel memori dioptimalkan untuk mengoptimalkan kueri Anda.

JSON adalah format data populer yang digunakan untuk bertukar data dalam aplikasi web dan seluler modern. JSON juga digunakan untuk menyimpan data semi-terstruktur dalam {i>file database

Kebanyakan layanan Azure memiliki titik akhir REST yang kembali atau mengonsumsi JSON. Layanan tersebut termasuk Azure Cognitive Search, Azure Storage, dan Azure Cosmos DB.

Jika Anda memiliki teks JSON, Anda dapat mengekstrak data dari JSON atau memverifikasi bahwa JSON diformat dengan benar dengan menggunakan fungsi bawaan JSON_VALUE, JSON_QUERY, dan ISJSON. Fungsi lainnya adalah:

  • JSON_MODIFY: Memungkinkan Anda memperbarui nilai di dalam teks JSON.
  • OPENJSON: Dapat mengubah larik objek JSON menjadi sekumpulan baris, untuk kueri dan analisis yang lebih canggih. Setiap kueri SQL dapat dijalankan pada kumpulan hasil yang ditampilkan.
  • UNTUK JSON: Memungkinkan Anda memformat data yang disimpan dalam tabel relasional Anda sebagai teks JSON.

Diagram that illustrates JSON functions.

Untuk informasi selengkapnya, lihat Cara bekerja dengan data JSON.

Anda dapat menggunakan model dokumen alih-alih menggunakan model relasional dalam beberapa skenario tertentu:

  • Normalisasi skema yang tinggi tidak membawa manfaat yang signifikan karena Anda mengakses semua bidang objek sekaligus, atau Anda tidak pernah memperbarui bagian objek yang dinormalisasi. Namun, model yang dinormalisasi meningkatkan kompleksitas kueri Anda karena Anda perlu menggabungkan banyak tabel untuk mendapatkan data.
  • Anda bekerja dengan aplikasi yang secara asli menggunakan dokumen JSON untuk komunikasi atau model data, dan Anda tidak ingin memperkenalkan lapisan tambahan yang mengubah data relasional ke JSON dan sebaliknya.
  • Anda perlu menyederhanakan model data Anda dengan menormalisasi kembali tabel anak atau pola Entitas-Objek-Nilai.
  • Anda perlu memuat atau mengekspor data yang disimpan dalam format JSON tanpa beberapa alat tambahan yang mengurai data.

Fitur XML

Fitur XML memungkinkan Anda menyimpan dan mengindeks data XML di database Anda dan menggunakan operasi XQuery/JalurX asli untuk bekerja dengan data XML. Produk Azure SQL memiliki tipe data dan fungsi kueri XML bawaan khusus yang memproses data XML.

Mesin database SQL Server menyediakan platform yang kuat untuk mengembangkan aplikasi untuk mengelola data semi-terstruktur. Dukungan untuk XML diintegrasikan ke dalam semua komponen mesin database dan mencakup:

  • Kemampuan untuk menyimpan nilai XML secara asli dalam kolom tipe data XML yang bisa diketik sesuai dengan kumpulan skema XML, atau dibiarkan tidak diketik. Anda bisa mengindeks kolom XML.
  • Kemampuan untuk menentukan kueri XQuery terhadap data XML yang disimpan dalam kolom dan variabel tipe XML. Anda dapat menggunakan fungsi XQuery dalam kueri T-SQL apa pun yang mengakses model data apa pun yang Anda gunakan dalam {i>database
  • Pengindeksan otomatis semua elemen dalam dokumen XML dengan menggunakan indeks XML utama. Atau Anda dapat menentukan jalur yang tepat yang harus diindeks dengan menggunakan indeks XML sekunder.
  • OPENROWSET, yang memungkinkan pemuatan massal data XML.
  • Kemampuan untuk mengubah data relasional menjadi format XML.

Anda dapat menggunakan model dokumen alih-alih menggunakan model relasional dalam beberapa skenario tertentu:

  • Normalisasi skema yang tinggi tidak membawa manfaat yang signifikan karena Anda mengakses semua bidang objek sekaligus, atau Anda tidak pernah memperbarui bagian objek yang dinormalisasi. Namun, model yang dinormalisasi meningkatkan kompleksitas kueri Anda karena Anda perlu menggabungkan banyak tabel untuk mendapatkan data.
  • Anda bekerja dengan aplikasi yang secara asli menggunakan dokumen JSON untuk komunikasi atau model data, dan Anda tidak ingin memperkenalkan lapisan tambahan yang mengubah data relasional ke JSON dan sebaliknya.
  • Anda perlu menyederhanakan model data Anda dengan menormalisasi kembali tabel anak atau pola Entitas-Objek-Nilai.
  • Anda perlu memuat atau mengekspor data yang disimpan dalam format XML tanpa beberapa alat tambahan yang mengurai data.

Fitur spasial

Data spasial mewakili informasi tentang lokasi fisik dan bentuk objek. Objek-objek ini dapat menjadi lokasi titik atau objek yang lebih kompleks seperti negara/wilayah, jalan, atau danau.

Azure SQL mendukung dua tipe data spasial:

  • Jenis geometri mewakili data dalam sistem koordinat Euclidean (datar).
  • Tipe geografi mewakili data dalam sistem koordinat bumi bulat.

Fitur spasial di Azure SQL memungkinkan Anda untuk menyimpan data geometris dan geografis. Anda dapat menggunakan objek spasial di Azure SQL untuk mengurai dan meminta data yang ditampilkan dalam format JSON, dan mengekspor data relasional Anda sebagai teks JSON. Objek spasial tersebut meliputi Titik, LineString, dan Poligon. Azure SQL juga menyediakan indeks spasial khusus yang dapat Anda gunakan untuk meningkatkan performa kueri spasial Anda.

Dukungan spasial adalah fitur inti dari mesin database SQL Server.

Pasangan kunci-nilai

Produk Azure SQL tidak memiliki tipe atau struktur khusus yang mendukung pasangan kunci-nilai, karena struktur kunci-nilai dapat diwakili secara asli sebagai tabel relasional standar:

CREATE TABLE Collection (
  Id int identity primary key,
  Data nvarchar(max)
)

Anda dapat menyesuaikan struktur kunci-nilai ini agar sesuai dengan kebutuhan Anda tanpa batasan apa pun. Sebagai contoh, nilai dapat berupa dokumen XML, alih-alih tipe nvarchar(max). Jika nilainya adalah dokumen JSON, Anda dapat menggunakan CHECK batasan yang memverifikasi validitas konten JSON. Anda dapat menempatkan sejumlah nilai yang terkait dengan satu kunci di kolom tambahan. Contohnya:

  • Tambahkan kolom dan indeks yang dikomputasi untuk menyederhanakan dan mengoptimalkan akses data.
  • Tentukan tabel sebagai tabel memori dioptimalkan dan skema-saja untuk mendapatkan performa yang lebih baik.

Untuk contoh bagaimana model relasional dapat secara efektif digunakan sebagai solusi pasangan kunci-nilai dalam praktik, lihat Bagaimana bwin menggunakan SQL Server 2016 OLTP Dalam Memori untuk mencapai kinerja dan skala yang belum pernah terjadi sebelumnya. Dalam studi kasus ini, bwin menggunakan model relasional untuk solusi penembolokan ASP.NET untuk mencapai 1,2 juta batch per detik.

Langkah berikutnya

Kemampuan multi-model adalah inti fitur mesin {i>database