Ada pertanyaan yang agak tidak berbahaya tentang menambahkan tanggal dan waktu di SQL Server yang memicu perdebatan taksonomi yang agak menarik.
Jadi bagaimana kita membedakan antara istilah-istilah terkait ini dan bagaimana kita menggunakannya dengan benar?
Baris
Merekam
sql-server
terminology
row
record
swasheck
sumber
sumber
Jawaban:
Mengutip Joe Celko (Anda tidak hanya dapat menemukan referensi ini di seluruh web dan di entri Wikipedia-nya , tetapi Anda bahkan akan melihatnya di T-shirt di beberapa konferensi):
Banyak orang menunjukkannya sebagai orang brengsek yang suka menyombongkan diri dan menyalahgunakan para pemula, dan saya akui itulah yang ia temukan. Tetapi saya juga telah bertemu dengannya secara langsung - bahkan berbagi makanan dengannya - dan saya tidak dapat memberi tahu Anda betapa berbedanya kepribadiannya yang sebenarnya dari front online-nya. Aku bahkan pernah memergokinya memanggil deretan catatan, dan dia sangat malu ( cerita lengkap di sini ).
Dalam kasus apa pun, katakan apa yang Anda inginkan tentang karakter online pria itu, tetapi dia menulis standar , dan fakta bahwa otoritas seperti itu menentukan bahwa ada perbedaan harus memberi tahu Anda sesuatu. Dan sebanyak yang dia ngeri ketika seseorang menyebut deretan catatan, demikian juga banyak rekan saya - yang juga ahli dalam dunia SQL Server. Dan kita di kamp itu percaya dia benar.
Misalnya, Itzik Ben-Gan, guru SQL Server yang jelas. Berikut ini kutipan dari pelajaran pertama dalam Kit Pelatihannya (Ujian 70-461): Meminta Microsoft SQL Server 2012 :
Dan, mengenal Itzik, jika Anda mengiriminya email atau memojokkannya di sebuah konferensi, dia akan dengan senang hati mengatakan hal yang sama kepada Anda. Jika Anda menyebut deretan catatan, menurutnya, Anda tidak menggunakan terminologi dengan benar.
Sekarang, sebagai industri yang penuh dengan orang-orang dari segala jenis, Anda cenderung menemukan materi (seperti artikel target teknologi yang diposting di jawaban lain) yang tampaknya membuat perbedaan yang sangat halus antara keduanya, dan Anda akan menemukan banyak orang di industri menganggap mereka sama (saya tahu beberapa orang di Microsoft, dan orang lain seperti Brent Ozar, yang hanya akan selalu menyebutnya sebagai catatan). Itu tidak membuat mereka benar, itu hanya cara mereka memandangnya - mereka memandang logis dan fisik sebagai hal yang sama (setidaknya dalam konteks ini) dan banyak dari mereka mungkin berpikir bahwa kita semua hanyalah penarik dubur yang menghabiskan terlalu banyak waktu pada semantik.
Karena tidak ada vendor yang mengatakan "kamu akan memanggil mereka {records | rows}", kita akan selamanya berurusan dengan argumen ini, karena akan selalu ada seseorang yang tidak mendapatkan logika vs fisik, atau diajarkan secara berbeda, atau berasal dari akses atau latar belakang pemrograman, dll. Seperti halnya beberapa orang mengatakan tomay-to dan orang lain mengatakan tomah-to, akan selalu ada beragam orang yang berkisar dari "mereka sama" hingga "mereka sama sekali berbeda "- dan banyak corak di antaranya. Sekali lagi, itu tidak membuat mereka benar, karena tidak ada yang bisa menjadi otoritas tertinggi dalam hal ini. Tetapi dalam ruang SQL Server, pasti ada mayoritas.
Yang mengatakan, IMHO, ketika Anda berbicara tentang data yang ada di dalam tabel, Anda menyebutnya baris. Saat Anda melakukan penyisipan, Anda memasukkan baris ke dalam tabel. Saat Anda menjalankan pembaruan, Anda memperbarui baris yang ada di dalam tabel. Dan ketika Anda melakukan SELECT, Anda mengambil baris dari sebuah tabel.
Jangan ragu untuk menyebutnya sebagai catatan setelah aplikasi Anda menyimpannya. Tetapi jangan marah jika Anda berkata, "Saya memasukkan catatan," dan seseorang mengoreksi Anda.
sumber
Microsoft telah di beberapa tempat di organisasi mereka asalkan nama resmi untuk penyimpanan data tabel per entri-tabel (untuk membuat definisi taksonomi yang melayani tujuan saya sendiri) disebut "ROW". Saya serahkan sebagai bukti
ROW_NUMBER
,ROWCOUNT
,ROWVERSION
danDataTable.Rows
properti, di manaDataTable
adalah C # representasi dari TSQL "meja" objek. Dalam hal ini, properti MSDN secara keseluruhan mendorong penggunaanrow
untuk merujuk pada kumpulan data yang merupakan satu entri dalam tabel. (perhatikan saya mencoba menghindari penggunaan "catatan" atau "baris" untuk mendefinisikan ini, yang menjadi titik pertanyaan)Namun, istilahnya adalah bahwa aplikasi berkaitan dengan "catatan" pengguna. Sesuatu yang unik tentang catatan yang mungkin tidak secara langsung diwakili oleh satu baris penyimpanan adalah kenyataan bahwa catatan dapat memiliki subkunci. Benar, sebuah tabel dapat memiliki banyak-ke-satu tabel terkait, tetapi mereka tidak disimpan secara bersamaan, tetapi mereka disimpan secara logis terkait.
Jadi, baris adalah hal dalam tabel, dan catatan adalah hal yang digunakan pengembang dalam penggunaan praktis.
sumber
Saya baru saja mencari melalui dokumen "Teknologi informasi - Bahasa basis data - SQL Bagian 2: Yayasan (SQL / Foundation)", yang mendefinisikan standar ANSI untuk SQL sebagaimana diterapkan oleh semua RDBMS utama.
Kata
row
ini digunakan terutama di seluruh dokumen beberapa ratus kali, seperti yang diharapkan.Kata
record
itu hanya digunakan untuk menggambarkan catatan yang mirip dengan catatan yang digunakan dalam Oracle PL / SQL (khusus menggambarkan tipe data catatan ADA). 6 menyebutkan dalam dokumen.Saya pikir ini membersihkan pertanyaan ini, dan menjawab berbagai argumen di kedua sisi.
informasi tambahan
Dari salinan (standar versi terbaru yang tersedia secara bebas) SQL, yang dapat ditemukan di wiscorp.com (halaman SQL Standards memiliki beberapa versi lama dan revisi).
Pencarian pada 7IWD2-02-Foundation-2011-12.pdf , dengan tanggal 2011-12-21 mengungkapkan bahwa baris kata muncul 2277 kali dalam dokumen sementara kata catatan muncul hanya 21 kali, baik sebagai kata kerja "catatan" atau dalam beberapa lampiran pada akhirnya, dalam spesifikasi korespondensi tipe data untuk tipe data SQL dan tipe bahasa host (Ada, Pascal).
Selain itu, dokumen yang sama ada di halaman 57 (penekanan milikku):
Sejauh menyangkut DBMS yang menggunakan SQL:
Baris bukan catatan , bidang bukan kolom, tabel bukan file!
sumber
Karena database relasional jarang digunakan dalam isolasi, untuk menghindari kebingungan antara bagian-bagian lain dari sistem, saya selalu merujuk pada tabel dan baris dan kolom. Dalam aplikasi klien, kami biasanya memiliki konstruksi lain, termasuk datareader, dataset, datarows, datatables, dll - misalnya "bidang" sering digunakan untuk entri data di layar dan Pascal memiliki catatan data yang mirip dengan struct di C .
Terkadang dalam desain sistem, gagasan "Rekaman" dapat digunakan untuk mengartikan sesuatu yang lebih luas daripada satu baris. Mungkin sebuah baris dan itu adalah sejarah. Sama seperti ketika kita berbicara tentang baris yang dihapus, kita mungkin berarti baris yang hanya ditandai sebagai dihapus dengan kolom atau "dipindahkan" ke tabel yang dihapus (dan bukan hanya tidak adanya baris yang, karena tidak ada, agak sulit untuk dijabarkan). Hanya ada lebih beragam penggunaan istilah Rekam.
Tabel, baris, dan kolom adalah terminologi yang secara umum diterima untuk merujuk entitas ini dalam database relasional, termasuk makalah dan pekerjaan dengan Codd dan Date, dan mayoritas profesional basis data lebih suka terminologi ini karena lebih jelas.
Biasanya tidak ada ambiguitas ketika seseorang berbicara tentang baris dan kolom - orang lain mengerti Anda berbicara tentang desain fisik basis data yang mendasari dan tidak ada artefak lain dari desain logis sebelum desain fisik atau entitas sistem yang muncul kemudian seperti bidang pada bidang layar.
sumber
Meskipun pertanyaan Anda sudah dijawab dengan sangat baik. Saya juga ingin menambahkan poin saya. Mungkin Anda merasa terbantu sampai batas tertentu. Juga jawaban saya tidak spesifik untuk SQL Server
Kata-kata ini digunakan secara bergantian.
DataBase books start with these terminology
karena ini banyak digunakan oleh orang-orang dalam kehidupan nyata, juga dalam sistem file.Record adalah unit dasar dalam sistem penyimpanan yang memiliki makna implisit. Dalam DBMS kata yang
record
digunakan dalam bab menjelaskan bagaimana tabel database disimpan di blok disk. Dalam DBMS arecord-oriented file-system
adalah sistem file di mana file disimpan sebagai koleksi catatan.sumber
Bahasa terus berkembang. Beberapa dekade yang lalu orang yang melek huruf menggunakan "indeks" alih-alih "indeks" yang lebih sederhana. Saat kami beralih ke "indeks", kami menghilangkan komplikasi yang tidak perlu dan membuat bahasa lebih berguna. Kebutuhan untuk menghafal jamak untuk "indeks" adalah murni overhead - tidak dengan cara apa pun membantu kami berkomunikasi. Jangan salah, dulu ada tata bahasa Nazi yang menikmati mengoreksi mereka yang beralih ke "indeks". Tentu saja, tata bahasa Nazi hilang. Beginilah cara pisau cukur Occam menghilangkan detail yang tidak berguna jika semuanya tetap relevan cukup lama.
Jadi mari kita santai - mengetahui perbedaan antara baris dan catatan sama sekali tidak menambah kemampuan kita untuk mengembangkan dan memelihara basis data. Banyak profesional hebat menggunakan baris dan catatan secara bergantian, namun mengembangkan sistem yang mengagumkan. Dengan demikian, pisau cukur Occam pada akhirnya harus menghilangkan perbedaan, dan generasi berikutnya harus belajar satu fakta yang kurang berguna. Jika, tentu saja, SQL masih relevan pada saat itu.
sumber
Mengutip buku CJ Date, "Pengantar Sistem Basis Data" " Baris-baris dari tabel seperti itu dapat dianggap sebagai catatan file ... "
Jadi, untuk database, itu adalah Row.
sumber
Jawaban singkat :
Catatan: tabel menyimpan catatan secara linear dan kueri mengembalikan hasil secara linear
Dukungan :
Definisi tambahan dari seluruh web:
Perlu dicatat bahwa definisi SQL umumnya mengikuti definisi bahasa Inggris.
Jika Anda memiliki definisi yang menurut Anda harus ada di sini, silakan tambahkan ke komentar.
Saya terutama tertarik pada definisi dari standar SQL atau dokumentasi implementasi.
Kutipan telah muncul "Baris bukan catatan." Diambil dari konteks ini tampaknya akan bertentangan dengan pernyataan saya sebelumnya (dan orang-orang dari banyak profesional basis data). Tapi, jika Anda membaca seluruh posting ( 1 Cari untuk kutipan) oleh Joe Celko (alias --CELKO--) menjadi jelas bahwa Joe Celko sedang mencoba untuk memperbaiki kesalahpahaman tentang individu yang menurut Joe Celko muncul dari orang itu " ... latar belakang dalam pemrosesan data dengan sistem file tradisional ... ". Singkatnya Joe Celko mengatakan baris SQL tidak berfungsi sama dengan catatan di sistem lain. Joe Celko tidak mengklaim hak / hak istimewa untuk mendefinisikan suatu istilah, ia mencoba untuk menjernihkan pemahaman yang salah yang disebabkan oleh penerapan salah satu model penyimpanan yang salah.
sumber