Bagaimana saya bisa menjelaskan perbedaan antara NULL dan nol?

59

Mengatasi masalah yang menggunakan rumus perubahan persen:

percent change =  100 * [(new value - old value) / old value]

Bagaimana saya menjelaskan perbedaannya jika new value or old value = NULL, alih-alih 0kepada seseorang yang mungkin bukan seorang programmer?

Bos saya bertanya-tanya mengapa ada string kosong di TextBox daripada nilai, karena kami memiliki nilai lama, tetapi bukan nilai baru.

OO
sumber
11
"Bagaimana saya akan menjelaskan perbedaannya"? Dalam bahasa apa? Beberapa bahasa melempar (atau menaikkan) pengecualian. Beberapa akan mengembalikan hasil NULL. Beberapa tergantung pada detail tentang bagaimana NULL diimplementasikan. Anda harus lebih spesifik.
S.Lott
29
Ubah kotak teks untuk mengatakan "Data tidak tersedia" alih-alih string kosong.
Craig
3
@ZJR - jadi tampilkan pesan dengan warna merah di bawah kotak. Intinya adalah, "NULL" atau string kosong memiliki lebih banyak digunakan di UI sebagai alamat memori suatu objek.
detly
10
Dengan analogi, 0 derajat suhu, dan Tidak ada pembacaan suhu adalah situasi yang berbeda ...
NWS
4
Saya tidak bisa menjawab sekarang karena dilindungi, tetapi saya selalu menjelaskan bahwa itu NULLadalah keadaan , bukan nilai - itu berarti Anda tidak tahu nilainya. Untuk SQL saya biasanya menggunakan analogi partai untuk menunjukkan.
JNK

Jawaban:

101

Untuk menjelaskan kepada bos perbedaan antara "nol" dan "nol":

"Nol" adalah sebuah nilai. Ini adalah kuantitas nol yang unik dan dikenal, yang bermakna dalam aritmatika dan matematika lainnya.

"Null" tidak bernilai. Ini adalah "tempat penampung" untuk nilai data yang tidak diketahui atau tidak ditentukan. Ini hanya bermakna dalam konteks ini; operasi matematika tidak dapat dilakukan pada null (hasil dari operasi tersebut tidak terdefinisi, dan karenanya juga secara umum dinyatakan sebagai null).

Misalnya, seperti dalam komentar: "Berapa penghasilan tahunan Anda?" adalah pertanyaan yang membutuhkan jawaban numerik. "0" adalah jawaban yang benar-benar valid untuk seseorang yang tidak bekerja dan tidak memiliki pendapatan investasi. Jika pengguna tidak memasukkan nilai sama sekali, mereka tidak perlu menghasilkan uang; mereka hanya tidak ingin memberi tahu perangkat lunak Anda berapa banyak (atau sedikit) yang mereka hasilkan. Ini tidak dikenal, tidak ditentukan; Oleh karena itu, untuk memungkinkan perangkat lunak untuk melanjutkan, Anda menentukan placeholder "null" untuk bidang data dalam perangkat lunak. Secara teknis itu valid dari perspektif data; apakah valid pada tingkat bisnis tergantung pada apakah nilai numerik aktual (bahkan nol) diperlukan untuk melakukan operasi matematika (seperti perhitungan pajak, atau perbandingan dengan ambang batas yang menentukan manfaat).

Di komputer, hampir semua operasi pada variabel yang mengandung null akan menghasilkan null atau dalam kondisi kesalahan, karena karena salah satu nilai variabel tidak diketahui, hasil dari ekspresi tidak dapat diketahui. Setara dengan melakukan matematika pada nol akan jika saya bertanya kepada Anda "Apa lima ditambah angka yang saya pikirkan sekarang?". Tidak mungkin bagi Anda untuk memberikan jawaban yang pasti karena Anda tidak tahu nomor yang saya pikirkan. Operasi pada nol, kecuali untuk membaginya, biasanya valid dan akan mengembalikan nilai unik lain yang diketahui.

KeithS
sumber
37
"Placeholder" adalah deskripsi yang bermanfaat. Jika Anda melakukan survei dan bertanya "berapa umur Anda?", Dan seseorang melewatkan pertanyaan itu, Anda TIDAK boleh menyatakan jawaban itu sebagai 0. Itu membuat asumsi (mungkin salah). Representasi yang benar akan menjadi NULL.
Nathan Long
Jadi kita dapat dengan mudah mengatakan bahwa NULL adalah pengganti dalam memori dengan tipe data yang tidak ditentukan. Benar?
Maxood
1
@ Maxood - Tergantung pada bahasa pemrograman. Saya akan mempertimbangkan variabel integer yang diizinkan menjadi nol (menggunakan sintaks?) Dan diatur ke null agar tidak memiliki nilai integer yang diketahui. Jenis yang diharapkan diketahui, jadi bisa dikatakan tidak didefinisikan, orang mungkin menganggap tidak 100% benar. Benar untuk mengatakan bahwa null tidak memiliki nilai atau tipe. Saya pribadi akan mengatakan bahwa tipe null atau NULL tidak didefinisikan tergantung pada konteks dan bahasa yang Anda gunakan. Dalam C # itu hanya berarti bahwa referensi ke objek tidak akan ditentukan.
Ramhound
NULLadalah explict KURANGNYA data, tidak pengganti, itu adalah representasi soliter tunggal tidak ada data.
Terminologi "placeholder" telah ada dalam jawaban ini sejak pertama kali diposkan, dan saya tidak akan mengubahnya sekarang. Pengeditan yang menambah kembali pertanyaan ini adalah untuk mengklarifikasi poin lain dalam penjelasan. Seperti yang diterapkan dalam kebanyakan bahasa, ini memang merupakan "placeholder"; lokasi yang dicadangkan dalam memori pada alamat nol yang ada dalam struktur program untuk tujuan yang jelas "direferensikan" oleh pointer memori untuk menunjukkan bahwa mereka menunjukkan tidak ada yang berguna. Itu lebih dari OP akan perlu memberitahu bosnya.
KeithS
172

Bicara bos selalu sulit ...

Nol adalah angka sehingga Anda dapat melakukan hal-hal dengannya.

Null adalah unicorn. Itu tidak ada sehingga Anda tidak bisa melakukan apa-apa dengannya.

Dave Wise
sumber
45
+1 untuk unicorn! Saya harus menambahkan: penjelasan yang sangat bagus.
BЈовић
14
Saya mungkin harus mulai memasukkan pertanyaan saya:; NVL(somefield,'UNICORN'))
FrustratedWithFormsDesigner
11
Kemudian bos mungkin bertanya, "Mengapa kita tidak membuatnya jadi kita bisa melakukan hal-hal dengannya? Null kedengarannya tidak berguna."
AlbeyAmakiir
26
@AlbeyAmakiir - Respons yang tepat untuk bos seperti itu adalah "Sementara kita berpura-pura mengetahui hal-hal yang tidak kita ketahui, mengapa kita tidak menghasilkan 1 juta? Itu bagus dan besar."
Nathan Long
12
Saya tidak percaya ini mendapat 90+ suara. Saya akan mulai memasukkan unicorn ke semua jawaban saya.
Morons
38

Ubah kata persamaan menjadi kalimat:

"Berapa persentase perubahan jika Anda mulai dengan nilai yang tidak diketahui dan Anda menghasilkan 150?"

dan

"Berapa persentase perubahan jika Anda mulai dengan 85 dan Anda berakhir dengan beberapa nilai yang tidak diketahui ?"

Tentu saja, jawaban untuk keduanya adalah "Tidak dapat dihitung, karena salah satu bagian penting dari perhitungan hilang." Itulah esensi dari 'null'.

Maka seharusnya mudah untuk mengetahui kalimat yang setara dengan nol, dan melihat bagaimana mereka secara fundamental berbeda:

"Berapa persentase perubahan jika Anda mulai dengan 0 dan Anda berakhir dengan 150?"

dan

"Berapa persentase perubahan jika Anda mulai dengan 85 dan Anda berakhir dengan 0?"

Meskipun jawabannya mungkin tidak masuk akal (dengan nol), setidaknya itu bisa dihitung . Dengan nol, perhitungannya bahkan tidak mungkin .

Eric King
sumber
2
+1 "Tidak Dikenal" jelas merupakan penjelasan yang bagus, dan mudah dijelaskan dalam kalimat.
Scott Rippey
@ EscRippey - Saya berpendapat nilai bukan unknownitu tidak ada karena dalam kasus NULLpersentase sebenarnya tidak ada nilai numerik APAPUN (persentase) atau nilai persentase.
Ramhound
2
@Ramhound Inilah yang saya coba sampaikan, dalam konteks pertanyaan awal: "Tidak Diketahui" mewakili "placeholder" dalam jawaban KiethS, yang menurut saya merupakan penjelasan yang bagus. Bagi bos yang bukan programmer, itu berarti mungkin ada nilai di luar sana, tapi kami tidak memilikinya (dalam database, sistem, formulir, dll.). Apakah ada nilainya? Kami tidak memiliki cukup informasi untuk diketahui, dengan satu atau lain cara. Data tidak ada. Itu makna yang agak berbeda dari tidak sama sekali , yang menyimpulkan tidak ada nilai yang bisa didapat . Bergantung pada konteks diskusi, penjelasan mana pun bisa benar.
Eric King
20

Saat berbicara dengan atasan Anda, gunakan saja 0untuk nol, dan ?untuk nol. Itu benar menangkap bahwa itu adalah pengganti untuk sesuatu tetapi Anda tidak tahu apa itu.

Michael Haren
sumber
? brilian, sederhana, dan menyampaikan konsep dengan jelas untuk orang awam.
nelaaro
12

Bagaimana dengan ini:

  • 0 adalah jawaban untuk "berapa banyak cairan yang ada dalam botol kosong?".
  • NULL adalah jawaban untuk "apa isi botol kosong?".

Atau jika Anda membayangkan seorang lelaki tanpa anak:

  • jumlah anak-anaknya adalah 0
  • anak sulungnya adalah NULL

Perbedaan dasarnya 0adalah tentang kuantitas yang dapat diukur, sedangkan NULLtentang keberadaan. Menjadi kuantitas, 0merepresentasikan sesuatu , yaitu kuantitas, yaitu 0, mirip dengan 0.000000001merepresentasikan kuantitas (sesuatu yang dalam masalah setiap hari, kehidupan sebenarnya sangat dekat 0). Berbeda dengan itu tidakNULL mewakili apa pun . Bahkan tidak ada yang dekat NULL. Nilai variabel apa pun (dan ekspresi) adalah salah satu NULLatau sesuatu.

back2dos
sumber
8

Begitulah cara saya selalu berhasil menjelaskannya:

0 adalah angka 0.

NULL adalah nirwana, tidak ada, nada, niente, tidak ada, tidak ada.

Operasi aritetis yang didefinisikan pada NULL selalu menghasilkan NULL sebagai hasilnya.

... bekerja untuk saya sejauh ini.

Elang
sumber
8
NULL adalah lenyapnya penderitaan? Wow! Saya harus menggunakannya lebih banyak dalam kode saya.
Claudiu
Ya, 0 adalah angka. nol adalah tidak adanya dari setiap nomor.
Michael Durrant
7

Mengapa Anda tidak memulai dengan mengajukan pertanyaan "mengapa nilainya sama dengan NULL?" Itu mungkin membantu Anda menjelaskan mengapa perhitungan mungkin tidak valid.

Jika Anda melakukan pembaruan berkala, dan nilai baru tidak muncul dengan sendirinya (misalnya kesalahan jaringan), maka NULL mungkin berarti perhitungan tidak dapat dilakukan dan nilai persen lama sudah basi. Anda mungkin ingin menunjukkan simbol yang menunjukkan Anda memiliki data basi, pembaruan tidak terjadi seperti yang diharapkan.

Hal yang sama mungkin benar untuk nilai lama yang hilang, tetapi saya kesulitan memahami bagaimana nilai lama dapat hilang (kecuali ini adalah perhitungan pertama, atau baterai mati dan data hilang.) Tetapi Anda mungkin ingin perlihatkan simbol yang menunjukkan kondisi ini juga.

Bagaimanapun Anda tidak ingin ini terjadi:

masukkan deskripsi gambar di sini

Sumber Gambar

Jim
sumber
+1. Ini jawabannya: jelaskan mengapa nilainya nol. Jika Anda tidak dapat menjelaskannya, maka Anda memiliki bug.
MarkJ
5

OldValue=Null Anda tidak tahu nilai Lama sehingga Perbedaannya Tidak Diketahui (Null)

OldValue=0 Anda tahu nilai lama, itu adalah 0, jadi Perbedaannya adalah Infinity (Null)

Jika penting untuk membedakan antara keduanya, cukup simpan nilai Lama sebagai PreviousValuedan tampilkan di suatu tempat.


Sunting berdasarkan komentar di bawah ini:
Saya hanya akan bertanya kepadanya apa yang ingin dia lakukan dalam situasi berikut dan menunjukkan kepadanya contoh masing-masing. Kemudian, tanyakan kepadanya, "Nilai apa yang ingin Anda tampilkan untuk ini?"

Jangan dengan cara apa pun menjadikan ini masalah komputer .. Ini pertanyaan bisnis.

Morons
sumber
Saya tidak berpikir bos saya akan mengerti apa yang baru saja Anda katakan :)
OO
+1 untuk mendekatinya sebagai pertanyaan bisnis. Bos sepertinya tidak peduli dengan implementasi.
Allen Gould
4

Saya sudah banyak sukses dengan 'kosong.'

Dengan orang-orang yang memahami aljabar dasar (atau gagasan sederhana yang dapat Anda tetapkan nilai pada simbol), gagasan nilai 'kosong' tampaknya cukup mudah dan berbeda dari nilai nol.

Jonathan Rich
sumber
4

NULL bukan sebuah nilai, ini bukan nilai. Nol masih merupakan nilai. (bahkan jika itu dapat digunakan dalam kasus-kasus di mana ia tidak dapat sepenuhnya dievaluasi.

Dengan analogi (cara yang baik untuk menjelaskan kepada non-teckies;

if I have three apples then I subtract three apples how many apples do I have? is 0

If I have a bag of apples and I never look in the bag, how many apples do I have? is null

Meskipun dalam kasus ini keduanya mungkin memiliki nilai yang sama (tergantung pada bahasa Anda) mereka secara konseptual sangat berbeda

Tom Squires
sumber
4

Sungguh tidak relevan apakah bos Anda seorang programmer. Masalahnya adalah masalah konseptual, bukan teknis.

Minta dia untuk berasumsi kamu mendapat kenaikan gaji. Gaji lama Anda adalah 175 ribu, tetapi gaji baru Anda tidak diketahui. Kemudian tanyakan padanya - berapa persentase kenaikan yang Anda terima?

Jika dia dinonaktifkan secara aritmatika, berjalan melalui prosesnya sampai dia bisa melihat di mana tautan yang hilang.

Jonathan Maddison
sumber
3

Saya menggunakan flip koin. Benar adalah kepala, salah adalah ekor, dan satu tangan menangkup di atas yang lain menyembunyikan koin adalah NULL. Jika Anda tahu koin itu adalah kepala, sangat mudah untuk menjawab pertanyaan "apa kebalikan dari nilai ini?". Satu tangan menyembunyikan koin menunjukkan dengan sangat mudah bahwa orang tersebut dapat menjawab jika Anda membiarkan mereka melihat nilai saat ini, tetapi karena Anda tidak mau, mereka tidak dapat memberikan jawaban. Sejauh yang mereka tahu, Anda bahkan tidak memiliki koin di bawah tangan Anda!

Bryan Boettcher
sumber
1

Dalam sebuah bidang, NULL mengatakan saya tidak tahu; tidak ada data di sini - setara dengan kosong. Nol (0) mengatakan bahwa saya tahu nilai bidang ini tepatnya 0, misalnya bilangan bulat yang lebih rendah dari angka satu.

Misalnya, saya dapat memiliki selembar kertas yang saya ketikkan ke dalam sistem komputer yang mengatakan berapa banyak setiap pelanggan berutang. Pelanggan A berutang $ 50, pelanggan B berutang $ 0, dan pelanggan C berutang NULL (????), karena jumlah pelanggan yang berutang C nomor telah dihapus (seseorang menggambar garis hitam di atasnya dan tidak dapat dibaca; atau ada catatan yang mengatakan bahwa tagihan mereka untuk belum siap). Saya dapat dengan nyaman mengatakan bahwa pelanggan B berhutang $ 0, dan dapat dengan nyaman mengatakan bahwa saya tidak tahu berhutang kepada pelanggan C. Saya tidak ingin menagih pelanggan C $ 0 (karena mereka mungkin berutang uang).

dr jimbob
sumber
1

Dengan asumsi kita tidak masuk ke hal-hal khusus bahasa seperti:

#define NULL 0

Perbedaannya adalah 0 adalah nilai numerik di mana NULL tidak. Itu seperti sel kosong di selembar kertas grafik. Sel dapat memiliki "0" di dalamnya, tetapi juga bisa kosong. Null masih bernilai, tetapi Anda menganggapnya istimewa. Misalnya, jika sel Anda sekarang karakter, Anda dapat menggunakan sel kosong sebagai spasi dan sel nol tidak lagi memungkinkan kecuali jika Anda menetapkan atau membuat karakter untuk menjadi kasus khusus.

Apa artinya null tergantung pada bagaimana data ditafsirkan:

  • Data kosong dapat berarti "belum disediakan", dan suatu program akan menunggu beberapa saat sebelum memeriksa nilainya lagi.
  • Data mungkin tidak dapat memiliki nilai nol. Ini dapat ditafsirkan secara ketat sebagai integer, dan nilai non-integer tidak mungkin.
  • Umumnya dalam memori, alamat 0 ditafsirkan sebagai null, yang berarti tidak dapat digunakan.
Vasiliy Sharapov
sumber
NULL == 0berfungsi dengan baik ketika Anda berurusan dengan pointer nol di C et al. Jika Anda mencoba menjelaskan ide tersebut kepada bos non-programmer Anda dengan menunjukkan kode mereka, Anda salah melakukannya.
Tullo_x86
1

Saya akan menjalankan pemeriksaan NVL dan jika salah satu parameternya NULL saya akan menampilkan String "N / A" (jangan kembalikan "0" karena itu tidak benar!).

Ini adalah sesuatu yang, dari sudut pandang manajer, akan terlihat lebih profesional daripada menampilkan nilai NULL yang jenisnya seperti Anda memiliki bug (yang tentu saja tidak - tetapi itulah yang terlihat pada non-insinyur) .

Alfasin
sumber
Memberi +1 pada bos dan semua pengguna tidak peduli apa artinya nol. Mereka menginginkan penjelasan nilai yang berarti. Jika tidak ada nilai lama atau baru maka tidak ada perubahan.
jqa
1

kami memiliki nilai lama, tetapi bukan nilai baru.

Sepertinya dalam benaknya, tidak memiliki nilai baru tidak berarti itu tidak diketahui; itu sama dengan nilai lama. Anda dapat kode itu sesuai tanpa menjelaskan nol karena dalam pikirannya, itu tidak pernah nol.

Alih-alih berdebat tentang NULL, pastikan ini tidak membuat masalah lain. Apa konsekuensi dari memiliki data yang terlalu lama? Ketika seseorang melihat perubahan 0%, apakah mereka menekan tombol panik? Apakah ini akan memengaruhi analisis atau agregat dari waktu ke waktu?

Saya hanya tidak berpikir dia membutuhkan tutorial pemrograman komputer, tapi alangkah baiknya jika dia tahu apa itu null dan mengajukan pertanyaan yang benar.

JeffO
sumber
1

Jika old valuenol, hasil dari persamaan seharusnya bernilai nol. Ini karena null bukan angka, itu berarti nilai yang tidak diketahui. Karenanya perhitungan tidak dapat dilanjutkan.

Tentu saja persamaan Anda juga gagal jika old value = 0Anda tidak dapat membaginya dengan nol.

Biasanya Anda menangani hal-hal ini dengan pernyataan kasus yang akan membawa Anda pada jalan yang ingin Anda perlihatkan. Jadi jika Anda ingin hasilnya ditampilkan sebagai nol ketika Anda tidak dapat menghitung (seperti dengan nol atau nol, maka Anda akan melakukan pernyataan kasus seperti

case when [old value] = 0 then null 
else 100 * (([old value] - [new value]) /[old value]) 
end
HLGEM
sumber
Dari sudut pandang pengguna 0 dan NULL dalam kasus nilai lama tidak akan menyamakan perbedaan (misalnya jika saya harus menunjukkan nilai dalam kotak teks). Dalam persen perubahan, tidak memiliki nilai dapat berarti sama dengan nol atau nol, bukan?
OO
DALAM persen perubahan nol berarti secara khusus tidak ada perubahan (nilai lama dan baru persis sama), nol berarti ada perubahan tetapi persentasenya tidak dapat ditentukan. Inilah sebabnya mengapa Anda mungkin tidak ingin menunjukkan hasil nol karena menyesatkan.
HLGEM
1

Beberapa diskusi hebat tentang analogi untuk menjelaskan aspek mekanis dari simbol nol dibandingkan dengan nilai-nilai lain; Namun, inti dari pertanyaan ini mungkin dari sudut pandang manajer dalam secara memadai mengekspresikan hasil di UI, mewakili batas yang bermakna dari formula perubahan yang dapat diterjemahkan sebagaimana diterapkan pada masalah khusus mereka, dapat dijawab lebih spesifik, saya percaya.

Dalam kasus persentase perubahan forumula, dua hal perlu diwakili: ketika sesuatu pertama kali diukur, dan ketika tidak ada yang diukur untuk aspek tertentu.

Ketika sesuatu pertama kali diukur (oldValue === NULL), perubahan persentase tidak dapat diterapkan; dan dapat / harus secara eksplisit dicatat bahwa itu adalah pengukuran awal untuk siklus pengukuran itu.

Ketika tidak ada yang diukur (newValue === NULL), perubahan persen yang dihasilkan sebenarnya adalah nilai nol (dengan asumsi non-nol pada siklus sebelumnya). Nol umumnya merupakan jawaban yang sesuai untuk rumus dalam kasus ini. Tidak ada pengukuran dalam siklus terbaru ini, dan dengan demikian tidak ada perubahan yang terukur. Itu seharusnya tidak menyiratkan itu tidak berubah, hanya saja tidak ada yang diukur, dicatat, atau dikomunikasikan sehubungan dengan aspek itu.

JustinC
sumber
0

Tentu saja mereka memahami konsep menempatkan "N / A" pada formulir ketika mereka berarti "tidak tersedia". Misalnya, untuk menjawab pertanyaan, "Berapa umur Benjamin Franklin?" jawaban 0 dan N / A jelas berbeda (dan yang terakhir benar). Demikian pula jawaban 0 dan NULL berbeda.

Scott Whitlock
sumber
0
  • NULL adalah tidak adanya nilai.
  • -Zero- adalah sebuah nilai, dan nilai itu adalah -Zero-.

Jika saya harus menjelaskan konsep-konsep ini kepada seseorang, saya akan menggambar dua kotak.

  • Kotak kosong akan mewakili NULL.
  • Sebuah kotak dengan angka -Zero- di dalamnya akan mewakili -Zero-.
Jim G.
sumber
0

Perbedaan antara 0 dan nol sama dengan perbedaan antara memiliki rekening bank dengan saldo 0 dan tidak memiliki rekening bank sama sekali.

JSR
sumber
-1

Ini paling baik dijelaskan dengan petunjuk.

var a -> [0] // variable a is initialized and set to hold 0
var b -> [123asgeb0] // variable b is initialized but not set, memory is pointed to, but holds whatever was there last

Karena itu, jika bahasa Anda tidak melacak variabel NULL untuk Anda, maka Anda akan menggunakan apa pun yang sudah ada . Hal ini dapat menyebabkan meluap, menumpuk korupsi, atau efek samping buruk lainnya.

Jika bahasa tidak melacak variabel NULL, maka itu akan memiliki kasus yang dinyatakan untuk menangani ini. Yaitu memperlakukan NULL sebagai nol, melempar pengecualian, memperlakukan sebagai tidak, dll.

Untuk menunjukkan kepada atasan Anda, dapatkan beberapa lembar kertas bekas.

  1. Ambil 2 gelas, dan tongkat putih.
  2. Putih bagian dari halaman, dan tuliskan nol
  3. Letakkan gelas di atasnya (ini var a)
  4. Letakkan gelas di atas bagian lain halaman (ini var b)
Spencer Rathbun
sumber
-1

Menilai dari beragam jawaban pada pertanyaan ini, dapat disimpulkan apa yang sudah kita ketahui: null dapat berarti banyak hal.

Entah itu berarti datanya adalah:

  • tidak diketahui dikenal,
  • diketahui tidak dikenal,
  • tidak valid (mis. kesalahan pengukuran),
  • tidak dapat diakses (misalnya dari sisi keamanan),
  • diketahui dikenal tetapi tidak relevan untuk pemrosesan data saat ini
  • data tidak terbatas (sering digunakan dalam basis data)
  • mungkin 10 hal lagi yang saya tidak pikirkan

Untuk ini, dan banyak alasan lainnya, sering kali berguna untuk mendefinisikan struktur data yang merangkum arti dari nilai nol (misalnya kelas opsional).

Dibbeke
sumber
-2

Orang yang melihatnya tidak memiliki selera humor. FWIW Saya sendiri seorang Arsitek.

Null adalah kekosongan. Menurut legenda ada 17 rasa (kemungkinan arti) dari Null termasuk "Saya tidak tahu", "Mereka tidak mengatakan", dan "seseorang memecahkan ini". Tidak ada yang tahu mengapa kecuali DBA dan Arsitek yang cemberut dari kamar belakang yang gelap hanya pada programmer. Mereka tersenyum sopan kepada bos dan mengibas-ngibaskan lidah mereka dengan keprihatinan mendalam dengan kebijaksanaan rumit yang mustahil, dan itu sangat penting tetapi tidak terlalu jelas - karena bos memberikan kinerja penting kepada DBA dan Arsitek. Cek pembayaran. Meski begitu Nulls tidak pernah menceritakan rahasia mereka. Itu adalah lubang hitam kosong. Satu nol tidak pernah sama dengan nol lainnya karena setiap kekosongan kosong dari kesetaraan dan menolak untuk mengakui bahwa mungkin tidak semua kosong yang ada. Ini tentu saja merupakan dugaan karena tidak ada orang yang menghargai diri sendiri yang bisa mengakuinya. Terkadang nulls menyedot data nyata dalam jumlah besar ke () mereka. Ini disebut bug tetapi sebenarnya hanyalah kekosongan dari pikiran programmer yang lupa tentang nol. Jadi Anda melihat mereka berkembang biak terkadang. Namun bagaimana atau mengapa selalu cepat dilupakan. () Kadang-kadang merupakan tanda nol atau sepupunya tetapi secara paradoks jarang bug.

Nol adalah jumlah sesuatu yang pasti. Nol jauh lebih bahagia daripada nol. Nol hanya malas dan tidak menambah banyak hasilnya.

Untuk jawaban yang membosankan dan akurat, Null adalah representasi dari "informasi yang hilang dan informasi yang tidak dapat diterapkan" EF Codd, pencipta SQL.

Codd juga menemukan Bentuk Normal ke-3 yang diterapkan pada pikiran Ilmuwan Komputer muda sebagai bentuk penyiksaan awal. Setelah dikuasai itu benar-benar diabaikan. Hal serupa terjadi ketika Desain Berorientasi Objek diperkenalkan. Dan kami tidak pernah senang meninggalkannya sendirian, jadi datanglah ketidakcocokan impedansi untuk menambah keributan bermain-main.

Michael
sumber