Senior dan Gelar

Tinggalkan komentar

Kesenioran, Kesarjanaan dan Jabatan Kita dikutif dari tulisan “Mario Gagho”

Sedikitnya ada tiga hal yang kalau kita tidak bijak dalam menyikapinya akan menghambat laju perkembangan dan progresifitas kita, khususnya progresifitias keilmuan, skill dan kepribadian. Yaitu, kesenioran, gelar kesarjanaan, dan jabatan kita. Kesenioran dalam konteks mahasiswa di India bermakna lamanya tinggal di India dan “banyaknya” usia yang sudah dilewati. Dalam konteks birokrat berkaitan dengan hirarki senioritas dalam jabatan dan posisi yang dipegang. Sedang kesarjanaan dan jabatan tentu kita sudah maklumi maksudnya.

Ketiga unsur di atas sering membuat kita terlena dan terhanyut oleh perasaan superior dan unggul yang sebenarnya sering tak lebih dari sekedar fatamorgana yang artifisial. tidak riil. Dan sering menggiring kita ke dalam perasaan aneh yang sebenarnya tidak perlu dan malah menyesatkan: pola pikir kita jadi sering terbuai, terbebani dan dipenuhi dengan sikap gengsi, “martabat”, harga diri dan arogansi.

Senioritas

Konvensi atau definini tradisional kuno menyebutkan bahwa yang dimaksud dengan senior adalah orang yang lebih tua dalam segi usia (dan dengan demikian dianggap banyak pengalaman dan lebih bijak). Definisi lama ini saya anggap sudah lapuk dan tak perlu membebani mindset otak kita. Benar, pengalaman yang banyak memang akan membawa kita pada sikap yang lebih bijak. Tetapi itu berlaku bagi “orang-orang yang mau belajar dari pengalaman itu”. Di sini, intinya yang dihargai dari seorang senior adalah “sikapnya yang bijak” bukan kesenioran itu sendiri. Dengan kata lain, siapapun yang bersikap bijaksana, kreatif dan memiliki visi ke depan lebih maju, baik itu yunior atau senior bahkan anak kecil sekalipun, patutlah mendapat respek yang sewajarnya di bidang di mana dia lebih mampu dari kita. Inilah esensi dari kesenioran.

Dengan kata lain, definisi kesenioran adalah mereka yang memiliki kemampuan (skill), visi ke depan, progresifitas dan sikap bijak (wisdom) yang lebih dari kita dalam bidang-bidang tertentu. Tanpa perlu memandang kepada usia atau jabatan yang dia pegang.

Sebaliknya, walaupun kita senior dalam berbagai bidang: jabatan, gelar kesarjanaan maupun usia, tapi kalau tidak memenuhi esensi di atas, maka berlapang-dadalah untuk memberi jalan pada yang lebih mampu, dan bersikaplah besar hati untuk belajar dari mereka pada bidang di mana mereka lebih mampu dari kita.

Gelar akademik atau kesarjanaan

Diploma I disebut dengan Ahli Pratama
Diploma II disebut dengan Ahli Muda (A.Ma)
Diploma III disebut dengan Ahli Madya (A.Md)
Sarjana atau Srata 1 (S1) diawali dengan huruf S (SE, SH, S.Kom, S.Si) dstnya
Pasca Sarjana – Srata 2 (S2) diawali dgn huruf M (MM, MH, M.Kom, M.Si,) dstnya
Pasca Sarjana – Srata 3 (S3) disebut dengan Doktor (DR atau Dr)

Ibarat kita naik gunung, kita telah berhasil mencapai “puncak”. Akan tetapi dalam konteks kesarjanaan, satu hal yang perlu diingat, bahwa dalam dunia keilmuan yang namanya “puncak” itu bukan hanya satu tapi banyak sekali. Dan kita hanya berhasil mencapai salah satu puncak gunung ilmu itu. Dan ini mesti kita sadari betul dengan penuh rasa rendah hati. Seorang yang mencapai gelar S2 atau S3 dibidang sastra Arab misalnya, maka dia adalah “pakar” di bidang sastra dan budaya Arab tapi dia tak lebih dari “anak TK” di bidang lain. Saya yang mengambil jurusan politik boleh dibilang “pakar” di bidang politik, tapi saya betul-betul “masih TK” di bidang sastra Arab, sastra Inggris apalagi ilmu komputer dan ekonomi, dll.

Dengan pola pikir semacam ini, maka kita tidak perlu pongah dan arogan karena kita telah lulus S2 (“master boy..!” kata beben) atau telah selesai Ph.D. Sebaliknya, dengan menyadari keterbatasan gelar2 kita itu, kita masih bisa terus belajar dengan rekan2 dari jurusan lain atas ilmu/skill yang tidak kita miliki. Saya ingin belajar mengaji lagi pada Ustadz Mukhlis Zamzami, MA (sastra Arab), saya masih ingin belajar tentang keislaman pada Zamhasari (BA.Islamic Studies), saya juga ingin belajar hardware komputer pada Juber Marbun alias Michael Stellar (BA. Computer) dan memperdalam skill bahasa Inggris saya pada Malik Sarumpaet (M.A.English). Dan belajar menulis artikel pada kolumnis dan redaktur situs Pesantren Virtual yaitu Rizqon Khamami.

Sumber ; http ://amroellahloebai.multiply.com

Iklan

Pengenalan Internet

Tinggalkan komentar

Latar Belakang

Menilik maksud dari pemunculannya teknologi telekomunikasi maupun informatika bertujuan untuk memudahkan kehidupan manusia. Dengan hadirnya internet, mau tidak mau kita dihadapkan pada kecenderungan dunia global, dunia di sekat-sekat geografis menjadi semakin semu, kepentingan bisnis, politik, hingga kriminal menjadi kegiatan yang tidak lagi terhambat oleh jarak, ruang, dan waktu.

Internet bisa menjadi sarana untuk berinteraksi, dan menikmati pola kehidupan sosial yang baru, yang berbeda dengan kehidupan nyata. Hanya duduk didepan monitor komputer, menggerakkan mouse dan mengetik kata-kata melalui sebuah keyboard, dunia maya hadir di depan mata. Seperti kehidupan di dunia nyata ada hitam dan putih, dunia mayapun demikian. Internet dapat menjadi sarana aktivitas kemaslahatan dan kemaksiatan.

Berbagai aktivitas yang bisa dilakukan lewa internet seperti berkirim surat elektronik, belanja secara online, melakukan transaksi bank, bercakap-cakap melalui instant mesangger atau hanya sekedar beselancar menjelajahi situs-situs Web. Aktivitas-aktivitas dengan hadirnya internet generasi ke-2 yang merupakan generasi internet bukan hanya bisa diakses melalui komputer, akan tetapi juga melalui berbagai perangkat lain seperti ponsel dan Personal Digital Assistant (PDA).

Sudah menjadi naluri manusia sebagai makhluk sosial untuk berkumpul dan membentuk komunitas. Hal demikian juga terjadi di dunia maya, itulah alasan mengapa mereka berkumpul dan membentuk komunitas di internet. Komunitas di internet tidak hanya dapat dipergunakan oleh orang memiliki profesi di bidang teknologi informasi saja, tetapi bisa dibentuk dan dipergunakan oleh banyak orang dengan beragam latar belakang profesi maupun tujuan. Internet dapat membentuk komunitas di dunia maya, salah satu komunitas di internet adalah yang dibentuk berdasarkan minat yang sama. Komunitas tersebut bisa berupa mailing list, forum online, chatting room, dan online game.

Komunitas di internet adalah dibangun untuk menjalin pertemanan, menjalin dengan teman-teman baru atau menemukan kembali teman-teman lama. Tidak hanya komunitas tersebut di muka, komunitas dunia maya juga dimanfaatkan sebagai ajang penjajagan bisnis. Internet sarana menghadirkan dunia maya didepan mata, satu dunia yang tidak bisa dilihat dan dirasakan secara fisik, tetapi dimengerti ada.

Apakah itu Internet ?

Saat ini kita selalu mendengar dan membaca tentang internet di Televisi, Radio, Majalah, dan Surat Kabar. Walaupun masih banyak masyarakat Indonesia yang tidak mengetahui apakah internet itu, khususnya bagi orang yang berdomisili di daerah pinggiran kota atau pedesaan. Kata internet berasal dari bahasa Inggris merupakan gabungan kata inter dan network, yaitu inter-net atau gabungan dua kata tersebut. Internet dapat juga merupakan gabungan kata internasional dan network yang mempunyai makna jaringan komputer internasional.

Merujuk kepada rangkaian kata internet berasal dari kata Interconnceted Network maka internet dapat didifenisikan sebagai berikut : sebuah sistem komunikasi global yang menghubungkan komputer-komputer dan jaringan-jaringan komputer di seluruh dunia. Setiap Komputer dan jaringan terhubung secara langsung maupun tidak langsung ke beberapa jalur utama yang disebut internet backbone dan di bedakan satu dengan yang lainnya menggunakan unique name yang biasa disebut dengan IP Address 32 bit. Contoh alamat IP atau IP Address : 172.16.24. 2 adalah alamat komputer yang digunakan untuk menulis pengenalan internet yang anda baca saat ini.
Transmission Control Protocol (TCP) / Internet Protocol (IP). Satu set protokol standar yang digunakan untuk menghubungkan jaringan komputer dan memberi alamat lalu lintas dalam jaringan. Protokol ini mengatur format data yang diijinkan, penanganan kesalahan (error handling), lalu lintas pesan, dan standar komunikasi lainnya. TCP/IP harus dapat bekerja diatas segala jenis komputer, tanpa terpengaruh oleh perbedaan perangkat keras maupun sistem operasi yang digunakan (Unix, Linux, Windows, Mac, dll). TCP/IP tersusun atas 4 layer (network access, internet, host to host transport, dan application) yang masing-masing memeliki protokolnya sendiri-sendiri.

Sebenarnya tidak ada difenisi khusus tentang apakah sebenarnya makna internet. internet boleh di difenisikan sebagai apapun juga yang melibatkan internet itu sendiri baik dari segi pengguna, kegunaan, aplikasi, budaya, teknologi dan sebagainya. Semuanya boleh di gunakan untuk menyatakan apakah dia internet.

Difenisi internet (Inter-Network) dari aspek kegunaan dan fungsinya adalah sebutan untuk sekumpulan jaringan komputer yang menghubungkan situs akademik, pemerintahan, komersial, organisasi, maupun perorangan. Internet menyediakan akses untuk layanan telekomnunikasi dan sumber daya informasi untuk jutaan pemakainya yang tersebar di seluruh dunia. Layanan internet meliputi komunikasi langsung (email, chat), diskusi (Usenet News, email, milis), sumberdaya informasi yang terdistribusi (World Wide Web, Gopher), remote login dan lalu lintas file (Telnet, FTP), dan aneka layanan lainnya.

Kapankah Internet di mulai ?

Untuk menjawab pertanyaan kapankah internet di mulai ? Penulis mencari referensi lewat internet, Tabloid PC Plus, Majalah PC Media. dan hand out pelatihan infrastruktur jaringan komunikasi data Telkom Training Center di Bandung pada tahun 2006.


Sejarah internet dimulai pada 1969 ketika Departemen Pertahanan Amerika memutuskan untuk mengadakan riset tentang bagaimana caranya menghubungkan sejumlah komputer sehingga membentuk jaringan organik. Pada awalnya internet merupakan jaringan komputer yang dibentuk oleh Departemen Pertahanan Amerika Serikat, melalui Program riset ini dikenal dengan nama ARPANET (Advanced Research Project Agency Net), dimana mereka mendemonstrasikan bagaimana dengan hardware dan software komputer yang berbasis UNIX, bisa melakukan komunikasi dalam jarak yang tidak terhingga melalui saluran telepon. Pada 1970, sudah lebih dari 10 komputer yang berhasil dihubungkan satu sama lain sehingga mereka bisa saling berkomunikasi dan membentuk sebuah jaringan.


Tujuan awal dibangunnya proyek itu adalah untuk keperluan militer. Pada saat itu Departemen Pertahanan Amerika Serikat (US Department Of Defense’s) membuat sistem jaringan komputer yang tersebar dengan menghubungkan komputer di daerah-daerah vital untuk mengatasi masalah bila terjadi serangan nuklir dan untuk menghindari terjadinya informasi terpusat, yang apabila terjadi perang dapat mudah dihancurkan. Pada mulanya ARPANET hanya menghubungkan 3 situs saja yaitu Stanford Research Institute, University of California di Santa Barbara, University of Utah, dimana mereka membentuk satu jaringan terpadu di tahun 1969, dan secara umum ARPANET diperkenalkan pada bulan Oktober 1972. tidak lama kemudian proyek ini berkembang pesat di seluruh daerah, dan semua universitas dinegara tersebut ingin bergabung, sehingga membuat ARPANET kesulitan untuk mengaturnya. Oleh sebab itu ARPANET dipecah manjadi dua, yaitu “MILNET” untuk keperluan militer dan “ARPANET” baru yang lebih kecil untuk keperluan non-militer seperti, universitas-universitas. Gabungan kedua jaringan akhirnya dikenal dengan nama DARPA internet, yang kemudian disederhanakan menjadi internet.

Di tahun 1986 lahir National Science Foundation Network (NSFNET), yang menghubungkan para periset di seluruh negeri dengan 5 buah pusat super komputer. Jaringan ini kemudian berkembang untuk menghubungkan berbagai jaringan akademis lainnya yang terdiri atas universitas dan konsorsium-konsorsium riset. NSFNET kemudian mulai menggantikan ARPANET sebagai jaringan riset utama di Amerika hingga pada bulan Maret 1990 ARPANET secara resmi dibubarkan. Pada saat NSFNETdibangun, berbagai jaringan internasional didirikan dan dihubungkan ke NSFNET. Australia, negara-negara Skandinavia, Inggris, Perancis, jerman, Kanada dan Jepang segera bergabung kedalam jaringan ini.

Perkembangan Internet.

Tahun 1972, Roy Tomlinson berhasil menyempurnakan program e-mail yang ia ciptakan setahun yang lalu untuk ARPANET. Program e-mail ini begitu mudah, sehingga langsung menjadi populer. Pada tahun yang sama, icon @ juga diperkenal kan sebagai lambang penting yang menunjukan “at” atau “pada”. Tahun 1973, jaringan komputer ARPANET mulai dikembangkan meluas ke luar Amerika Serikat. Komputer University College di London merupakan komputer pertama yang ada di luar Amerika yang menjadi anggota jaringan Arpanet. Pada tahun yang sama, dua orang ahli komputer yakni Vinton Cerf dan Bob Kahn mempresentasikan sebuah gagasan yang lebih besar, yang menjadi cikal bakal pemikiran internet. Ide ini dipresentasikan untuk pertama kalinya di Universitas Sussex.

Tahun 1979, Tom Truscott, Jim Ellis dan Steve Bellovin, menciptakan newsgroups pertama yang diberi nama USENET. Tahun 1981 France Telecom menciptakan gebrakan dengan meluncurkan telpon televisi pertama, di mana orang bisa saling menelpon sambil berhubungan dengan video link. Karena komputer yang membentuk jaringan semakin hari semakin banyak, maka dibutuhkan sebuah protokol resmi yang diakui oleh semua jaringan.

Tahun 1982, dibentuk Transmission Control Protocol atau TCP dan Internet Protocol atau IP yang kini kita kenal semua. Sementara itu di Eropa muncul jaringan komputer tandingan yang dikenal dengan Eunet, yang menyediakan jasa jaringan komputer di negara-negara Belanda, Inggris, Denmark dan Swedia. Jaringan Eunet menyediakan jasa e-mail dan newsgroup USENET.

Tahun 1984, untuk menyeragamkan alamat di jaringan komputer yang ada, maka diperkenalkan sistem nama domain, yang kini kita kenal dengan DNS atau Domain Name System. Komputer yang tersambung dengan jaringan yang ada sudah melebihi 1000 komputer lebih. Setahun kemudian alamat anggota jaringan mulai menggunakan alamat dengan akhiran .com. Sistem alamat yang serba praktis ini langsung menggelumbungkan jumlah komputer yang tersambung dengan jaringan.


Tahun 1988, antar sesama komputer sudah mulai dapat mengobrol atau chatting, karena Jarko Oikarinen dari Finland berhasil menemukan dan sekaligus memperkenal kan IRC atau Internet Relay Chat. Setahun kemudian, jumlah komputer yang saling berhubungan kembali melonjak 10 kali lipat dalam setahun. Tak kurang dari 100.000 komputer kini membentuk sebuah jaringan. Tahun 1990 adalah tahun yang paling bersejarah, ketika Tim Berners Lee menemukan program editor dan browser yang bisa menjelajah antara satu komputer dengan komputer lainnya, yang membentuk jaringan itu. Program inilah yang disebut www, atau World Wide Web.

Tahun 1992, komputer yang saling tersambung membentuk jaringan sudah melampaui sejuta komputer, dan di tahun yang sama muncul istilah “surfing the internet”. Tahun 1994, situs internet telah tumbuh menjadi 3.000 alamat halaman, dan untuk pertama kalinya virtual-shopping atau e-retail muncul di internet.

Siapakah yang mengembangkan Internet ?

Siapakah yang mengembangkan internet sehingga saat ini internet menjadi dunia maya yang mampu menjadi pemersatu perangkat keras, perangkat lunak dan aplikasi. Para pengembang internet antara lain sebagai berikut :

  1. Leo Beranek dan Richard Bolt, professors dari MIT ) atas permintaan Departemen Pertahanan Amerika Serikat dengan proyek yang di namakan The Advanced Reseach Project Agency disingkat ARPA, mengusulkan untuk memilih atau BBN pada bulan Desember 1968 sebagai pemberi berita penting dari hubungan teknologi internet dan pelayanan.
  2. Robert E. Kahn (DARPA Information Processing Technology) berhasil melakukan komunikasi melalui jaringan satelit dan jaringan paket ground-based Radio, Tahun 1972.
  3. Vinton Cerf developer protocol ARPANET Network Control Program (NCP), bergabung bersama Kahn untuk membangun suatu model open arsitektur interkoneksi yang bertujuan untuk membuat protocol generasi selanjutnya untuk ARPANET. DARPA melakukan kontrak dengan BBN, Stanford dan The University Colege London untuk melakukan pengembangan lebih lanjut versi operasional dari protocol yang bisa menghubungkan berbagai platform perangkat keras. Empat versi pun dikembangkan untuk hal ini, yaitu TCP v1, TCP v2, TCP v3 dan IP v3 dan versi yang cukup stabil yaitu TCP/IP v4. Sampai saat ini internet masing menggunakan TCP/IP v4 tersebut sebagai standar jaringan komunikasi data pada tahun 1973.
  4. Timothy Berners Lee, ahli komputer dari Inggris menciptakan World Wide Web yaitu semacam program yang memungkinkan suara, gambar, film, musik ditampilkan dalam internet. Karena penemuan inilah internet menjadi lebih menarik tampilannya dan sangat bervariasi. Tim Berners Lee mendapat kehormatan sebagai salah satu dari 100 orang berpengaruh di abad ini versi majalah TIME. Namanya bisa disejajarkan dengan ilmuwan komputer Alan Turing, dan perintis ‘kaliber’ berat dari beragam bidang lainnya semacam psikoanalisis, antropologi, fisika, biologi, ekonomi, bahkan teknologi pesawat terbang. Saat ini, jutaan orang menggunakan hasil karyanya yaitu jaringan komputer dari berbagai belahan dunia yang lebih dikenal istilah World Wide Web (WWW).
  5. Ray Tomlinson pada tahun 1971 seorang insinyur penemu E-mail (surat elektronik) tetapi surat elektronik ini hanya dapat dikirimkan pengguna komputer yang masih dalam satu area. Tomlinson membuat terobosan baru. Ia berhasil mengirim pesan ke lain komputer melalui internet dengan menggunakan tanda @ untuk menandakan mesin penerima.
  6. Dialah ilmuwan komputer yang menemukan dan mengembangkan jaringan global maya atau www. yang menjadikan tiga huruf kembar populer di dunia teknologi informasi (TI). dan University College London (UCL), melakukan komunikasi antar dua buah jaringan TCP/IP pada tahun 1975.
  7. Amerika Serikat, Inggris dan Norwegia melakukan pengujian lagi melibatkan tiga buah jaringan yang ada pada 3 negara tersebut pada tahun 1977.
  8. ARPANET mengembangkan beberapa protocol type pada berbagai pusat penelitian. Sementara perpindahan secara total ke TCP/IP dilakukan oleh pada tanggal 1 Januari 1983.
  9. Internet Architecture Board mengadakan workshop TCP/IP selama tiga hari yang dihadiri oleh sekitar 250 vendor. Hal ini mempercepat popularitas dari protocol tersebut serta meningkatkan penggunaannya secara komersial pada tahun 1985.

Dunia langsung berubah. Di tahun yang sama Yahoo! Didirikan, yang juga sekaligus tahun kelahiran Netscape Navigator 1.0.

Kemajuan berarti dicapai pada tahun 1990 ketika World Wide Web mulai dikembangkan oleh CERN (Laboratorium Fisika Partikel di Swiss) berdasarkan proposal yang dibuat oleh Tim Berners-Lee. Namun demikian, WWW browser yang pertama baru lahir dua tahun kemudian, tepatnya pada tahun 1992 dengan nama Viola. Viola diluncurkan oleh Pei Wei dan didistribusikan bersama CERN WWW. Tentu saja web browser yang pertama ini masih sangat sederhana, tidak secanggih browser modern yang kita gunakan saat ini.

Terobosan berarti lainnya terjadi pada 1993 ketika InterNIC didirikan untuk menjalankan

layanan pendaftaran domain. Bersamaan dengan itu, Gedung Putih (White House) mulai online di Internet dan pemerintah Amerika Serikat meloloskan National Information Infrastructure Act. Penggunaan internet secara komersial dimulai pada 1994 dipelopori oleh perusahaan Pizza Hut, dan Internet Banking pertama kali diaplikasikan oleh First Virtual. Setahun kemudian, Compuserve, America Online, dan Prodigy mulai memberikan layanan akses ke Internet bagi masyarakat umum.

Sementara itu, kita di Indonesia baru bisa menikmati layanan Internet komersial pada sekitar tahun 1994. Sebelumnya, beberapa perguruan tinggi seperti Universitas Indonesia telah terlebih dahulu tersambung dengan jaringan internet melalui gateway yang menghubungkan universitas dengan network di luar negeri.

Pada awalnya, internet hanya menawarkan layanan berbasis teks, meliputi remote access, email/messaging, maupun diskusi melalui newsgroup (Usenet). Layanan berbasis grafis seperti World Wide Web (WWW) saat itu masih belum ada. Yang ada hanyalah layanan yang disebut Gopher yang dalam beberapa hal mirip seperti web yang kita kenal saat ini, kecuali sistem kerjanya yang masih berbasis teks.

Siapakah yang mengembangkan Internet ?

Siapakah yang mengembangkan internet sehingga saat ini internet menjadi dunia maya yang mampu menjadi pemersatu perangkat keras, perangkat lunak dan aplikasi. Para pengembang internet antara lain sebagai berikut :

  1. Leo Beranek dan Richard Bolt, professors dari MIT ) atas permintaan Departemen Pertahanan Amerika Serikat dengan proyek yang di namakan The Advanced Reseach Project Agency disingkat ARPA, mengusulkan untuk memilih atau BBN pada bulan Desember 1968 sebagai pemberi berita penting dari hubungan teknologi internet dan pelayanan. Tempatnya awal penelitian adalah di Institute penelitian Stanford, Universitas California di Los Anggeles, UC Santa Barbara pada tahun 1968.
  2. Robert E. Kahn (DARPA Information Processing Technology) berhasil melakukan komunikasi melalui jaringan satelit dan jaringan paket ground-based Radio, Tahun 1972.
  3. Vinton Cerf developer protocol ARPANET Network Control Program (NCP), bergabung bersama Kahn untuk membangun suatu model open arsitektur interkoneksi yang bertujuan untuk membuat protocol generasi selanjutnya untuk ARPANET. DARPA melakukan kontrak dengan BBN, Stanford dan The University Colege London untuk melakukan pengembangan lebih lanjut versi operasional dari protocol yang bisa menghubungkan berbagai platform perangkat keras. Empat versi pun dikembangkan untuk hal ini, yaitu TCP v1, TCP v2, TCP v3 dan IP v3 dan versi yang cukup stabil yaitu TCP/IP v4. Sampai saat ini internet masing menggunakan TCP/IP v4 tersebut sebagai standar jaringan komunikasi data pada tahun 1973.
  4. Stanford dan University College London (UCL), melakukan komunikasi antar dua buah jaringan TCP/IP pada tahun 1975.
  5. Amerika Serikat, Inggris dan Norwegia melakukan pengujian lagi melibatkan tiga buah jaringan yang ada pada 3 negara tersebut pada tahun 1977.
  6. ARPANET mengembangkan beberapa protocol type pada berbagai pusat penelitian. Sementara perpindahan secara total ke TCP/IP dilakukan oleh pada tanggal 1 Januari 1983.
  7. Internet Architecture Board mengadakan workshop TCP/IP selama tiga hari yang dihadiri oleh sekitar 250 vendor. Hal ini mempercepat popularitas dari protocol tersebut serta meningkatkan penggunaannya secara komersial pada tahun 1985.

Sumber ; http://amroellahloebai.multiply.com

Sistem Operasi

Tinggalkan komentar

Pendahuluan
Biasanya, istilah Sistem Operasi sering ditujukan kepada semua software yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi software terinstall. Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem file.
Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu. Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.

 

Sistem Operasi secara umum terdiri dari beberapa bagian:
1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.

Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu, tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti itu disebut sebagai Multi-tasking Operating System. Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time OS

Layanan inti umum

Seiring dengan berkembangnya Sistem Operasi, semakin banyak lagi layanan yang menjadi layanan inti umum. Kini, sebuah OS mungkin perlu menyediakan layanan network dan koneksitas internet, yang dulunya tidak menjadi layanan inti umum. Sistem Operasi juga perlu untuk menjaga kerusakan sistem komputer dari gangguan program perusak yang berasal dari komputer lainnya, seperti virus. Daftar layanan inti umum akan terus bertambah.

Program saling berkomunikasi antara satu dengan lainnya dengan Antarmuka Pemrograman Aplikasi, Application Programming Interface atau disingkat dengan API. Dengan API inilah program aplikasi dapat berkomunikasi dengan Sistem Operasi. Sebagaimana manusia berkomunikasi dengan komputer melalui Antarmuka User, program juga berkomunikasi dengan program lainnya melalui API.

Walaupun demikian API sebuah komputer tidaklah berpengaruh sepenuhnya pada program-program yang dijalankan diatas platform operasi tersebut. Contohnya bila program yang dibuat untuk windows 3.1 bila dijalankan pada windows 95 dan generasi setelahnya akan terlihat perbedaan yang mencolok antara window program tersebut dengan program yang lain.

Sistem Operasi saat ini

Sistem operasi-sistem operasi utama yang digunakan komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar:

  1. Keluarga Microsoft Windows – yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista yang akan dirilis pada tahun 2007, Windows 7)).
  2. Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
  3. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).
Sedangkan komputer Mainframe, dan Super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dll.
Sejarah Sistem Operasi
Sejarah Windows

Dimulai dari DosShell for DOS 6 buatan Microsoft dan inginnya Microsoft bersaing terhadap larisnya penjualan Apple Macintosh yang menggunakan GUI, Microsoft menciptakan Windows 1.0. Nama ini berasal dari kelatahan karyawan Microsoft yang menyebut nama aplikasi tersebut sebagai Program Windows (Jendela Program). Windows versi 2 adalah versi Windows pertama yang bisa diinstal program. Satu-satunya program yang bisa ditambahkan adalah Microsoft Word versi 1. Windows versi 3 menjanjikan aplikasi tambahan yang lebih banyak, kelengkapan penggunaan, kecantikan user interface atau antarmuka dan mudahnya konfigurasi. Windows versi 3.1 adalah versi Windows yang bisa mengoptimalisasi penggunaannya pada prosesor 32-bit Intel 80386 ke atas. Windows versi 3.11 adalah versi Windows terahkir sebelum era Start Menu. Windows 3.11 pun adalah versi Windows pertama yang mendukung networking/jaringan. Versi Hibrida dapat dijalankan tanpa MS-DOS. Versi Hibrida tersebut menginstalasi dirinya sendiri dengan DOS 7. Tidak seperti Windows versi 16-bit yang merupakan shell yang harus diinstalasi melalui DOS terlebih dahulu. Aplikasinya pun berbeda. Meskipun Windows 9X dapat menjalankan aplikasi Windows 16-bit, namun Windows 9X memiliki grade aplikasi sendiri – X86-32, Windows 9X sangat terkenal dengan BSOD (Blue Screen of Death).

Versi-versi Windows

16-bit, berjalan di atas MS-DOS 
1985 November – Windows 1.0 
1987 9 Desember – Windows 2.0 
1990 22 Mei – Windows 3.0 
1992 Agustus – Windows 3.1 
1992 Oktober – Windows for Workgroups 3.1 
1993 November – Windows for Workgroups 3.11 
Hibrida (16-bit/32-bit), berjalan tanpa MS-DOS (meski tidak sepenuhnya) 
1995 24 Agustus – Windows 95 (Versi: 4.00.950) 
1998 25 Juni – Windows 98 (Versi: 4.1.1998) 
1999 5 Mei – Windows 98 Second Edition (Versi: 4.1.2222) 
2000 19 Juni – Windows Millennium Edition (Me) (Versi: 4.9.3000) 
Berbasis kernel Windows NT 
1993 Agustus – Windows NT 3.1 
1994 September – Windows NT 3.5 
1995 Juni – Windows NT 3.51 
1996 29 Juli – Windows NT 4.0 
2000 17 Februari – Windows 2000 (Versi: NT 5.0.2195) 
2002 – Windows XP (Versi: NT 5.1.2600) 
2003 – Windows Server 2003 (Versi: NT 5.2.3790) 
2007 – Windows Vista (Versi 6.0 Build 6000) 
Versi yang akan datang
2007 – 2008 – Windows Server 2008 (versi 6.1) 
2010 – 2012 – Windows “Vienna”.

Sejarah Unix

Sistem operasi Unix digunakan secara luas baik sebagai server atau workstation. Arsitektur Unix dan model client/server merupakan elemen yang paling penting dalam perkembangan internet dan mengubah proses komputasi secara terpusat dalam jaringan dari pada proses tunggal di komputer. Linux, merupakan sistem operasi yang diadopsi dari Unix dan tersedia secara bebas mendapat popularitas sebagai alternatif dari sistem operasi proprietary seperti Microsoft Windows
Pada tahun 1960, Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric bekerja dalam sebuah sistem operasi eksprimental yang disebut Multics (Multiplexed Information and Computing Service). Banyak aplikasi-aplikasi dalam sistem operasi lain yang awalnya lahir dalam lingkungan sistem operasi Unix. Salah satu contoh aplikasi yang dimaksud misalnya adalah gnuplot.

Unix Di Indonesia
Di Indonesia Unix digunakan sebagai Server aplikasi, produk yang beredar di pasaran antara lain IBM AIX, HP UX, Sun Solaris. Masing-masing produk ini umumnya memiliki pasar tersendiri seperti Sun Solaris yang digunakan pada operator telekomunikasi selular, HP UX pada manufaktur dan distribusi. Fungsi Unix sebagai workstation kurang populer mengingat harganya yang mahal.
Jenis-jenis Unix

Unix adalah sebuah sistem operasi yang dikembangkan oleh banyak pihak. Setiap pihak yang mengembangkan Unix, menambahkan teknologi miliknya ke dalam Unix, yang meskipun hal itu di luar standar, mampu menjadikan sistem operasi Unix lebih kuat atau lebih andal. Tabel berikut menyebutkan beberapa jenis-jenis Unix.

Nama varian UNIX Dikembangkan oleh (vendor/organisasi)
  1. A/UX : Apple Computer,  Domain/X : Apple Computer. Darwin Apple Computer (modifikasi yang dilakukan oleh Apple dari kernel BSD dan diaplikasikan pada Mac OS/X).
  2. CTIX : Convergent Technology.
  3. Distrix : Convergent Technology.
  4. UniCOS : Cray Research (sekarang bagian dari Silicon Graphics Incorporated).
  5. DG/UX : Data General Corporation.
  6. Digital Unix : Digital Equipment Corporation (DEC) (dibeli oleh Compaq, sekarang bagian dari Hewlett-Packard).
  7. Ultrix : Digital Equipment Corporation (DEC) (dibeli oleh Compaq. sekarang bagian dari Hewlett-Packard).
  8. CLIX : Fairchild Company.
  9. HP/UX :  Hewlett-Packard.
  10. Tru64 : Compaq (sekarang bagian dari Hewlett-Packard).
  11. AIX :  International Business Machine (IBM) Corporation.
  12. Coherent : Mark William Company.
  13. XENIX :  Microsoft Corporation (lalu dijual ke SCO).
  14. DVIX : Northern Telecom.
  15. UnixWare : Novell Incorporated.
  16. SCO UNIX :  Santa Cruz Operation (SCO) Corporation.
  17. SCO XENIX : Santa Cruz Operation (SCO) Corporation.
  18. SCO OpenServer : Santa Cruz Operation (SCO) Corporation
  19. Dynix : Sequent.
  20. SINIX : Siemens Corporation/Nixdorf.
  21. IRIX :  Silicon Graphics Incorporated (SGI).
  22. SunOS :  Stanford Universities Network (SUN).
  23. Solaris : Sun Microsystems Incorporated.
  24. Eunice : The Wollongong Group.
  25. Uniplus+ : Unisoft Corporation.
  26. BSD UNIX : Universitas California (University of California) Berkeley, Amerika Serikat.
  27. BSD/I BSDI (Berkeley Software Design Incorporated).
  28. OSF/1 Open Software Foundation.
  29. GNU/Linux : Free Software Foundation.
  30. GNU/Hurd : Free Software Foundation.
  31. FreeBSD, NetBSD, OpenBSD, NextStep.
  32. Minix : Universitas Terbuka Amsterdam (Vrije Universiteit Amsterdam), Belanda.
  33. Mach : Universitas Carnegie Mellon (Carnegie Mellon University), Amerika Serikat.
  34. UNIX System V : Lucent Technologies (Bell Labs).
  35. QNX : QNX Software Systems

Sejarah Linux

Kernel Linux pada mulanya ditulis sebagai proyek hobi oleh pelajar universitas Finland Linus Torvalds yang belajar di Universitas Helsinki, untuk membuat kernel Minix yang gratis dan dapat diedit. (Minix adalah projek pelajaran menyerupai UNIX dibuat untuk mudah digunakan dan bukannya untuk digunakan secara komersial.) Versi 0.01 dikeluarkan ke Internet pada September 1991, Versi 0.02 pada 5 Oktober 1991. Berikutnya, beribu-ribu penulis program sukarelawan seluruh dunia telah menyertai proyek ini.

Sejarah sistem operasi Linux berkaitan erat dengan proyek GNU, proyek pengembangan perangkat lunak bebas (free software) yang didasari pandangan bahwa perangkat lunak itu harusnya tidak menyertakan batasan apapun (bebas) saat diterima oleh pengguna. Pandangan ini tertuang dalam satu lisensi dengan nama General Public License atau disingkat GPL. Richard Stallman merupakan motor utama yang memulai proyek GNU pada tahun 1983. Proyek ini bertujuan untuk membuat sistem operasi lengkap — kompiler, utiliti aplikasi, utiliti pembuatan dan program lainnya sehingga dapat membentuk satu sistem yang dapat digunakan. Kesemuanya menggunakan lisensi GPL. Pada tahun 1991 proyek GNU telah menghasilkan hampir semua komponen sistem, kecuali kernel, yang merupakan komponen utama sebuah sistem operasi lengkap. Torvalds mengisi kekosongan itu dengan kernel buatannya, yang dapat berjalan bersama komponen GNU. Kesemua aplikasi GNU beserta kernel yang dibuat oleh Torvald dan sukarelawan lainnya itulah yang membentuk satu sistem operasi lengkap yang bernama Linux.


Ada sedikit keberatan dari Stallman terhadap penyebutan Linux. Penyebutan itu seolah menganulir kontribusi GNU yang menyumbangkan banyak sekali komponen aplikasi sehingga Linux sebagai kernel dapat digunakan secara umum. Karena itu ia mengusulkan untuk setiap penyebutan Linux, menyertakan nama GNU atau tepatnya GNU/Linux untuk definisi sistem yang terdiri dari kernel Linus Torvald dan aplikasi pendukung buatan GNU. Namun dikalangan umum, nama Linux lebih dikenal. Hingga tahun 2008, kernel yang dikembangkan oleh GNU dengan nama GNU Hurd masih belum selesai.

Logo dan Merek Dagang

Ada salah satu kisah (perlu dikonfirmasikan kembali) kenapa Linus menginginkan pinguin sebagai logonya. Saat berjalan-jalan di taman Perth bersama Andrew Tridgell, pembuat program Samba, Linus dipatok oleh Pinguin dan demam selama berhari-hari. Ia pikir karakter pinguin cocok dengan Linux. Badannya agak gemuk, santai, namun jika mematok bisa bikin demam berhari-hari. Dia menggambarkan pinguin maskot ini nantinya berbadan gemuk, agak tersenyum dan sedang istirahat.

Setelah melalui pemilihan selama beberapa waktu, akhirnya diputuskan gambar pinguin yang dibuat oleh Larry Ewing merupakan deskripsi yang paling sempurna menurut keinginan Linus. Maskot ini dinamakan Tux, ditahbiskan sebagai logo Linux pada tahun 1996. Tentang penamaan Tux, merupakan kepanjangan dari Torvald + Unix = Tux.

Linux adalah merek dagang (SN: 1916230) yang dimiliki oleh Linus Torvalds. Linux terdaftar sebagai “Program sistem operasi komputer bagi penggunaan komputer dan operasi”. Merek dagang ini didaftarkan setelah ada suatu kejadian di mana seorang pemalsu bernama William R Della Croce Jr mulai mengirim surat kepada para distributor Linux dan megklaim trademark Linux adalah hakmiliknya serta meminta royalti sebanyak 10% dari mereka. Para distributor Linux mulai mendorong agar trademark yang asli diberikan kepada Linus Torvalds. Pemberian lisensi trademark Linux sekarang dibawah pengawasan Linux Mark Institute.


Distribusi Linux

Terdapat banyak distribusi Linux (lebih dikenali sebagai distro) yang dibuat oleh individu, grup, atau lembaga lain. Masing-masing disertakan dengan program sistem dan program aplikasi tambahan, di samping menyertakan suatu program yang memasang keseluruhan sistem di komputer (installer program).

Inti di setiap distribusi Linux adalah kernel, koleksi program dari proyek GNU (atau proyek lain), cangkang (shell), dan aturcara utilitas seperti pustaka (libraries), kompilator, dan penyunting (editor). Kebanyakan sistem juga menyertakan aturcara dan utilitas yang bukan-GNU. Bagaimanapun, utilitas tersebut dapat dipisahkan dan sistem ala UNIX masih tersedia. Beberapa contoh adalah aturcara dan utiliti dari BSD dan sistem grafik-X (X-Window System). X menyediakan antarmuka grafis (GUI) yang umum untuk Linux.

Contoh-contoh distribusi Linux :

  1. Ubuntu dan derivatifnya : Kubuntu, Xubuntu, Edubuntu, GoBuntu
  2. SuSE, Fedora, Mandriva, Slackware, Debian, PCLinuxOS, Knoppix, Xandros

Daftar Distro Linux yang beredar di Indonesia selengkapnya bisa dilihat di DINO – Distro LUG Indonesia http://distro.lug.or.id

Aplikasi Sistem Operasi Linux

Pengguna Linux, yang pada umumnya memasang dan melakukan sendiri konfigurasi terhadap sistem, lebih cenderung mengerti teknologi dibanding pengguna Microsoft Windows atau Mac OS. Mereka sering disebut hacker atau geek. Namun stereotipe ini semakin berkurang dengan peningkatan sifat ramah-pengguna Linux dan makin luasnya pengguna distribusi. Linux telah membuat pencapaian yang cukup baik dalam pasaran komputer server dan komputer tujuan khusus, seperti mesin render gambar dan server web. Linux juga mulai populer dalam pasaran komputer desktop.

Linux merupakan asas kepada kombinasi program-server LAMP, kependekan dari Linux, Apache, MySQL, Perl/PHP/Python. LAMP telah mencapai popularitas yang luas di kalangan pengembang Web. Linux juga sering digunakan sebagai sistem operasi embeded. Biaya pengadaan Linux yang murah memungkinkan penggunaannya dalam peralatan seperti simputer, yaitu komputer berbiaya rendah yang ditujukan pada penduduk berpendapatan rendah di Negara-negara berkembang.

Dengan lingkungan desktop seperti KDE dan GNOME, Linux menawarkan antarmuka pengguna yang lebih menyerupai Apple Macintosh atau Microsoft Windows daripada antarmuka baris teks seperti Unix. Oleh karena itu, lebih banyak program grafik dapat ditemui pada Linux yang menawarkan berbagai fungsi yang ada pada utilitas komersil.

Pasar serta kemudahan pemakaian

Linux yang pada awalnya hanya merupakan sistem operasi yang digunakan oleh peminat komputer, telah menjadi sistem yang lebih user-friendly, dengan antaramuka grafik yang berbagai macam aplikasi yang lebih mirip sistem operasi lain, daripada baris perintah Unix. Namun kesan ini telah menimbulkan banyak kritikan, termasuk dari pendukung Linux. Mereka berpendapat bahwa Linux dan proyek program bebas masih belum mencapai faktor “ke’mudahan’an dalam pemakaian” yang memuaskan. Persoalan tentang ke’mudah’an Linux dibanding Windows atau Macintosh masih menjadi isu perdebatan yang hangat. Pasaran Linux dalam komputer “desktop” masih agak kecil tapi semakin berkembang. Menurut Lembaga Penyelidikan Pasaran IDC, besar pasaran bagi Linux pada tahun 2002 adalah 25% bagi pasaran server, dan 2.8% bagi pasaran Komputer pribadi.

Bagi mereka yang hanya biasa menggunakan Windows atau Macintosh, Linux mungkin kelihatan lebih sukar disebabkan perbedaan dalam melakukan berbagai kerja komputer. Dan lagi, pengguna perlu menukar program yang sering digunakan, disebabkan program tersebut tidak didapati dalam Linux (atau pilihan yang agak terbatas, misalnya permainan komputer). Faktor lain adalah sifat ragu-ragu pengguna yang merasa susah untuk melepaskan sistem operasi mereka (banyak pengguna masih menggunakan Windows). Selain itu, kebanyakan komputer didatangkan dengan Windows siap pakai (preinstalled). Faktor-faktor ini menyebabkan perkembangan Linux yang agak lambat.

Walau bagaimanapun, kelebihan Linux seperti biaya rendah, sekuritas yang lebih aman, dan tidak bergantung pada vendor, telah meningkatkan penggunaan yang luas di kalangan korporasi dan perkantoran. Dalam situasi ini, halangan yang disebut di atas dapat dikurangi karena hanya aplikasi/utiliti yang terbatas digunakan, serta administrasi dan konfigurasi komputer (administration) dikendalikan oleh sekumpulan pekerja pakar IT yang sedikit.

Terdapat berbagai kajian yang dilakukan terbatas biaya serta ke’mudahan’an Linux. Relevantive, (sebuah lembaga berpusat di Berlin, yang mengkhususkan diri dalam riset lembaga tentang ke’mudahan’an program, serta servis web), telah membuat kesimpulan bahawa ke’dapatpakai’an Linux bagi pekerjaan dengan komputer “desktop” adalah hampir sama dengan Windows XP. Bagaimanapun, kajian oleh IDC (yang dibiayai oleh Microsoft) mengklaim bahwa Linux mempunyai biaya pemilikan (Total Cost of Ownership) yang lebih tinggi dibanding Windows.

Linux juga sering dikritik karena jadwal penembangannya yang tidak dapat diduga. Secara langsung, menyebabkan pengguna Enterprise kurang selesa dengan Linux dibanding sistem operasi lain (Sumber:Marcinkowski, 2003). Pilihan yang banyak dalam hal distribusi Linux juga dikatakan membingungkan konsumer, dan vendor program.

Instalasi

Proses instalasi Linux yang sukar seringkali menjadi penghalang bagi pengguna baru, namun proses ini sekarang menjadi lebih mudah. Dengan penerimaan Linux oleh beberapa pabrikan komputer pribadi besar, komputer terpasang (built up) dengan distribusi Linux banyak tersedia. Selain itu, terdapat juga distribusi Linux yang dapat dijalankan (boot) secara langsung dari cakram optik (CD) tanpa perlu diinstalasi ke cakram keras (hard disk); hal ini dikenal dengan istilah Live CD. Contoh distribusi dalam bentuk Live CD adalah Knoppix/Gnoppix, Kubuntu/Ubuntu dan Gentoo. Saat ini hampir semua distribusi Linux menyediakan versi Live CD untuk produknya. ISO image untuk cakram optik untuk distribusi Linux tersebut biasanya dapat diunduh dari Internet, dibakar ke CD, dan selanjutnya dapat digunakan sebagai CD yang siap untuk proses boot.

Instalasi Linux juga merupakan instalasi berupa suite, yaitu dimana penginstalasian tersebut secara otomatis menginstalasi program-program standar, seperti pemutar MP3, Office Suite, dan pengolah gambar.

Konfigurasi

Konfigurasi setelan Linux dan aplikasi di atasnya banyak yang dilakukan lewat berkas teks di direktori /etc. Pada perkembangan selanjutnya, utilitas seperti Linuxconf dan GNOME System Tools memudahkan pekerjaan ini lewat antarmuka grafik. Kendati demikian, baris perintah (command line) tetap merupakan cara yang paling umum digunakan.

Dukungan

Dukungan bagi Linux biasanya didapatkan melalui peer(dalam konteks ini maksudnya kelompok pengguna linux/KPLI) – pengguna Linux lain di dalam forum internet, IRC, newsgroup dan mailing list. Kelompok Pengguna Linux (LUG, Linux User Group) telah didirikan di seluruh dunia untuk membantu pengguna lokal, pengguna baru, dan pengguna berpengalaman. Di Indonesia kelompok ini tergabung dalam KPLI daerah seperti KPLI Jakarta, KPLI Bandung, KPLI Jogja dan masih banyak lainnya. Bantuan termasuk instalasi, penggunaan, pengadaan serta menggalakkan pengembangan sistem Linux.

Dukungan resmi Linux di Indonesia antara lain : (LUG) Indonesia http://www.lug.or.id atauhttp://www.lugi.or.id atau http://www.infolinux.or.id Dukungan komersil bagi distribusi Linux secara umum menggunakan model bisnis dengan menyediakan dukungan teknis. Dukungan pihak ketiga juga sudah tersedia.

Skala Usaha Pembangunan Linux

Sebuah studi (More Than a Gigabuck: Estimating GNU/Linux’s Size [2]) Terhadap Red Hat Linux 7.1 menemukan bahwa distribusi ini berisi 30 juta baris kode sumber (‘’source lines of code (SLOC)’’). Menggunakan model biaya COCOMO studi ini menunjukan bahwa distribusi ini memerlukan waktu pengembangan sebanyak 8000 tahun, apabila software ini di kembangkan dengan cara proprietary konvensional. Dan akan menghabiskan sekitar 1.08 miliar dolar (dolar tahun 2000) untuk dikembangkan di Amerika Serikat. Mayoritas dari kode (71%) ditulis dalam C, namun banyak bahasa lain digunakan, termasuk C++ shell scripts, Lisp, assembly language, Perl, Fortran dan Python.

Sekitar setengah dari kodenya di lisensikan di bawah GPL.

Kernel Linux mengandung 2.4 juta baris kode, atau sekitar 8% dari total kode yang dipakai dalam sebuah distribusi/distro. Hal ini menunjukan bahwa mayoritas dari distribusi Linux terdiri dari kode yang tidak terkandung dalam Kernel Linux.  GNU adalah singkatan dari GNU’s Not Unix. Disebabkan utiliti-utiliti dari proyek sistem operasi bebas GNU – tanpa ini sistem Linux tidak akan menyerupai sistem Unix dalam perspektif pengguna – Richard Stallman dari GNU/FSF memohon agar kombinasi sistem (proyek GNU dan kernel Linux), disebut sebagai “GNU/Linux”. Pengguna distribusi Linux dari proyek Debian lebih cenderung menggunakan nama tersebut. Kebanyakan pengguna lebih mudah menggunakan istilah “Linux”.

Tindakan Undang-undang (Litigasi)

Artikel utama: SCO Vs IBM Pada bulan Maret 2003, Grup SCO (SCOG – SCO Group) telah mengeluarkan gugatan terhadap IBM yang mengklaim bahwa IBM telah memasukkan sebagin besar dari bahan intelektual milik SCOG (kode sumber) ke dalam kernel Linux, di mana hal ini merupakan pelanggaran terhadap lisensi IBM untuk menggunakan UNIX. Disebutkan bahwa lisensi tersebut dipegang oleh Kelompok SCO. Tambahan lagi, Kelompok SCO juga telah mengirim surat kepada beberapa lembaga dan memberi ancaman tentang penggunaan Linux tanpa lisensi dari kelompok SCO akan menerima tindakan dari mereka. Kelompok SCO juga mengeluarkan pernyataan pada media massa bahwa mereka akan menggugat pengguna Linux selanjutnya. Kontroversi ini telah mencetus beberapa kecaman oleh Kelompok SCO terhadap Novell, DaimlerChrysler, dan AutoZone, selain gugatan balik oleh Red Hat dan pihak lain terhadap SCOG.i

Proses
Prosesor mengeksekusi program-program komputer. Prosesor adalah sebuah chip dalam sistem komputer yang menjalankan instruksi-instruksi program komputer. Dalam setiap detiknya prosesor dapat menjalankan jutaan instruksi. Program adalah sederetan instruksi yang diberikan kepada suatu komputer. Sedangkan proses adalah suatu bagian dari program yang berada pada status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem Operasi, kita lebih sering membahas proses dibandingkan dengan program. Pada Sistem Operasi modern, pada satu saat tidak seluruh program dimuat dalam memori, tetapi hanya satu bagian saja dari program tersebut. Sedangkan bagian lain dari program tersebut tetap beristirahat di media penyimpan disk. Hanya pada saat dibutuhkan saja, bagian dari program tersebut dimuat di memory dan dieksekusi oleh prosesor. Hal ini sangat menghemat pemakaian memori.
Beberapa sistem hanya menjalankan satu proses tunggal dalam satu waktu, sedangkan yang lainnya menjalankan multi-proses dalam satu waktu. Padahal sebagian besar sistem komputer hanya memiliki satu prosesor, dan sebuah prosesor hanya dapat menjalankan satu instruksi dalam satu waktu. Maka bagaimana sebuah sistem prosesor tunggal dapat menjalankan multi-proses? Sesungguhnya pada granularity yang sangat kecil, prosesor hanya menjalankan satu proses dalam satu waktu, kemudian secara cepat ia berpindah menjalankan proses lainnya, dan seterusnya. Sehingga bagi penglihatan dan perasaan pengguna manusia, seakan-akan prosesor menjalankan beberapa proses secara bersamaan.
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor.
Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).
Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
1. Ready, yaitu status dimana proses siap untuk dieksekusi pada giliran berikutnya
2. Running, yaitu status dimana saat ini proses sedang dieksekusi oleh prosesor
3. Blocked, yaitu status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas

 

Sejarah S.I

Tinggalkan komentar

 

Perkembangan peradaban manusia diiringi dengan perkembangan cara penyampaian informasi (yang selanjutnya dikenal dengan istilah Teknologi Informasi). Mulai dari gambar-gambar yang tak bermakna di dinding-dinding gua, peletakkan tonggak sejarah dalam bentuk prasasti sampai diperkenalkannya dunia arus informasi yang kemudian dikenal dengan nama INTERNET. Informasi yang disampaikan pun berkembang. Dari sekedar menggambarkan keadaan sampai taktik bertempur.
Masa Pra-Sejarah (…s/d 3000 SM)

Pada awalnya Teknologi Informasi yang dikembangkan manusia pada masa ini berfungsi sebagai sistem untuk pengenalan bentuk-bentuk yang mereka kenal, mereka menggambarkan informasi yang mereka dapatkan pada dinding-dinding gua, tentang berburu dan binatang buruannya. Pada masa ini mereka mulai melakukan pengidentifikasian benda-benda yang ada disekitar lingkungan mereka tinggal dan mewakilinya dengan bentuk-bentuk yang kemudian mereka lukis pada dinding gua tempat mereka tinggal, karena kemampuan mereka dalam berbahasa hanya berkisar pada bentuk suara dengusan dan isyarat tangan sebagai bentuk awal komunikasi mereka pada masa ini.

Tahun 105 Masehi

Bangsa Cina menemukan Kertas. Kertas yang ditemukan oleh bangsa Cina pada masa ini adalah kertas yang kita kenal sekarang, kertas ini dibuat dari serat bambu yang dihaluskan, disaring,dicuci kemudian diratakan dan dikeringkan, penemuan ini juga memungkinkan sistem pencetakan yang dilakukan dengan menggunakan blok kayu yang ditoreh dan dilumuri oleh tinta atau yang kita kenal sekarang dengan sistem Cap.
Masa Modern ( 1400-an M s/d sekarang )

Tahun 1455 : Mesin Cetak yang menggunakan plat huruf yang tebuat dari besi yang bisa diganti-ganti dalam bingkai yang tebuat dari kayu dikembangkan untuk yang pertama kalinya oleh Johann Gutenberg.
Masa Modern ( 1400-an M s/d sekarang )

Tahun 1830 Masehi

Augusta Lady Byron Menulis program komputer yang pertama didunia berkerjasama dengan Charles Babbage menggunakan mesin Analytical-nya. Yang didesain mampu memasukan data, mengolah data dan menghasilkan bentuk keluaran dalam sebuah kartu. Mesin ini dikenal sebagai bentuk komputer digital yang pertama walaupun cara kerjanya lebih bersifat mekanis daripada bersifat digital, 94 tahun sebelum komputer digital pertama ENIAC I dibentuk.

Tahun 1837 Masehi

Samuel Morse mengembangkan Telegraph dan bahasa kode Morse bersama Sir William Cook dan Sir Charles Wheatstone yang dikirim secara elektronik antara 2 tempat yang berjauhan melalui kabel yang menghubungkan kedua tempat tersebut. Pengiriman dan Penerimaan Informasi ini mampu dikirim dan diterima pada saat yang hampir bersamaan waktunya. Penemuan ini memungkinkan informasi dapat diterima dan dipergunakan secara luas oleh masyarakat tanpa dirintangi oleh jarak dan waktu.

Tahun 1861 Masehi

Gambar bergerak yang peroyeksikan kedalam sebuah layar pertama kali di gunakan sebagai cikal bakal film sekarang. Tahun 1876 : Melvyl Dewey mengembangkan sitem penulisan Desimal. Tahun 1877 : a. Alexander Graham Bell menciptakan dan mengembangkan Telepon yang dipergunakan pertama kali secara umum. b. Fotografi dengan kecepatan tinggi ditemukan oleh Edweard Maybridge.
Tahun 1899 : Dipergunakan sistem penyimpanan dalam Tape (pita) Magnetis yang pertama. Tahun 1923 : Zvorkyn menciptakan tabung TV yang pertama. Tahun 1940 : Dimulainya pengembangan Ilmu Pengetahuan dalam bidang Informasi pada masa Perang Dunia 2 yang dipergunakan untuk kepentingan pengiriman dan penerimaan dokumen-dokumen militer yang disimpan dalam bentuk magnetic tape.
Tahun 1945 Masehi

Vannevar Bush mengembangkan sistem pengkodean menggunakan Hypertext. Tahun 1946
Komputer digital pertama didunia ENIAC I dikembangkan. Tahun 1948 : Para peneliti di Bell Telephone mengembangkan Transistor. Tahun 1957 : Jean Hoerni mengembangkan transistor Planar. Teknologi ini memungkinkan pengembangan jutaan bahkan milyaran transistor dimasukan kedalam sebuah keping kecil kristal silikon. USSR (Rusia pada saat itu) meluncurkan sputnik sebagai satelit bumi buatan yang pertama yang bertugas sebagai mata-mata. Sebagai balasannya Amerika membentuk Advance Research Projects Agency (ARPA) dibawah kewenangan Departemen Pertahanan Amerika untuk mengembangkan ilmu Pengetahuan dan Teknologi Informasi dalam bidang Militer.

Tahun 1962 : Rand Paul Barand, dari perusahaan RAND, ditugaskan untuk pengembangkan suatu sistem jaringan desentralisasi yang mampu mengendalikan sistem pemboman dan peluncuran peluru kendali dalam perang Nuklir. Tahun 1969 Sistem jaringan yang pertama dibentuk dengan menghubungkan 4 nodes (titik), antara University of California, SRI (Stanford), University California of Santa Barbara, dan University of Utah.dengan kekuatan 50Kbps.

Tahun 1972 Masehi

Ray Tomlinson menciptakan program e-mail yang pertama. Tahun 1973 – 1990 : istilah INTERNET diperkenalkan dalam sebuah paper mengenai TCP/IP kemudian dilakukan pengembangan sebuah protokol jaringan yang kemudian difkenal dengan nama TCP/IP yang dikembangkan oleh grup dari DARPA, 1981 National Science Foundation mengembangkan Backbone yang disebut CSNET dengan kapasitas 56 Kbps untuk setiap institusi dalam pemerintahan. kemudian pada tahun 1986 IETF mengembangkan sebuah Server yang berfungsi sebagai alat koordinasi diantara; DARPA, ARPANET, DDN dan Internet Gateway.
Tahun 1991- Sekarang

Sistem bisnis dalam bidang IT pertama kali terjadi ketika CERN dalam menanggulangi biaya operasionalnya memungut bayaran dari para anggotanya. 1992 pembentukan komunitas Internet, dan diperkenalkannya istilah World Wide Web oleh CERN. 1993, NSF membentuk InterNIC untuk menyediakan jasa pelayanan Internet menyangkut direktori dan penyimpanan data serta database (oleh AT&T), Jasa Registrasi (oleh Network Solution Inc,), dan jasa Informasi (oleh General Atomics/CERFnet),1994 pertumbuhan Internet melaju dengan sangat cepat dan mulai merambah kedalam segala segi kehidupan manusia dan menjadi bagian yang tidak dapat dipisahkan dari manusia. 1995, Perusahaan umum mulai diperkenankan menjadi provider dengan membeli jaringan di Backbone, langkah ini memulai pengembangan Teknologi Informasi khususnya Internet dan penelitian-penelitian untuk mengembangkan sistem dan alat yang lebih canggih.

Perkembangan Teknologi Informasi sampai dengan saat ini berkembang dengan pesat seiring dengan penemuan dan pengembangan Ilmu Pengetahuan dalam bidang Informasi dan Komunikasi sehingga mampu menciptakan alat-alat yang mendukung perkembangan Teknologi Informasi, mulai dari sistem komunikasi sampai dengan alat komunikasi yang searah maupun dua arah (interaktif).

Sumber ; http://amroellahloebai.multiply.com

 

Teknik Normalisasi

Tinggalkan komentar

Teknik Perancangan Basisdata

Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data yang akan dibangun ini dapat memenuhi kebutuhan pada masa kini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data yang baik secara fisik maupun secara konseptualnya.

Model Konseptual basis data

Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara file. Pada perancangan model konseptual dapat dilakukan dengan menggunakan model data relasional. Teknik Model Data Relasional ada 2 yaitu :

  1. Teknik Normalisasi
  2. Teknik Entity Relationship

Teknik Normalisasi

Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu basis data. Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal.

Field (Atribut) Kunci

Setiap file selalu terdapat kunci dari file berupa field atau satu set field yang dapat mewakili record. Misalnya Nomor Induk Siswa (NIS) merupakan kunci dari tabel Siswa suatu Satuan Pendidikan, setiap pencarian cukup dengan menyebut nomor induk siswatersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya. Nomor Pegawai (NIP) bagi data guru, NIK untuk data karyawan, Kode_Pelajaran untuk data Mata pelajaran, dan lain sebagainya.

Jenis Atribut Pada Entitas

Atribut yang melekat pada suatu entitas ada bermacam tipe seperti yang akan dijelaskan sebagai berikut :

  1. Atribut Sederhana : atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain.   Contoh : Entitas siswa mempunyai atribut sederhana berupa NIS, Nama siswa.
  2. Atribut Komposit : atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tesendiri. Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti nama_kota, kode_pos.
  3. Atribut Bernilai Tunggal: yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya. Contoh : entitas siswa mempunyai atribut NIS, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NIS, 1 Nama, 1 Alamat.
  4. Atribut Bernilai Jamak: yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini boleh lebih dari 1 data. Siswa Muhammad Anggara memiliki NIS 199810141 beralamat di Jalan Jambu Humbay Nomor 99 Kota Baru Lubay memiliki Hobby (Olah Raga, Nyanyi, Game Online dan Nonton TV)
  5. Atribut Harus Bernilai: yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian dokosongi akan terjadi kesalahan. Contoh : entitas mahasiswa mempunyai atribut NIS dan Nama_Siswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam basis data.
  6. Atribut Bernilai Null: yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya. Contoh : entitas siswa mempunyai atribut Alamat, Hobby, Makanan_Pavorit yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik.
  7. Atribut Turunan: yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan. Contoh : entitas siswa mempunyai atribut Rangking yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIS siswa yang sama dan diproses sehingga menghasilkan Rangking untuk siswa yang bersangkutan.

Kunci Kandidat (Candidate Key)

Kunci kandidat adalah satu atribut atau satu set atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Jika kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran atau gabungan).

Contoh :

File Siswa berisi :
· No Siswa
– Nama Siswa
· Tempat Lahir
· Tanggal Lahir
· Alamat
· Kota
– Kode Pos
– Kelas
– Nama Ayah
– Nama Ibu

Kunci kandidat dalam file Siswa di atas dapat dipilih sebagai berikut :

  • Nomor Induk Siswa
  • Nama (tidak dapat dipakai karena sering seseorang punya nama yang sama dengan orang lain)
  • Nama + Tanggal Lahir (mungkin bisa dipakai sebagai kunci karena kemungkinan orang dengan nama yang sama dan tanggal lahir yang sama cukup kecil)
  • Nama + Tempat Lahir + Tanggal Lahir (dapat dipakai sebagai kunci)
  • Alamat dan Kota (bukan kunci)

Kunci Primer (Primery Key)

Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada.

Contoh :

  • Nomor Induk Siswa (karena sifatnya yang unik maka tidak mungkin Siswa mempunyai Nomor Induk yang sama).
  • Kode_Pelajaran (bisa dipakai untuk data mata pelajaran karena kode mata pelajaran bersifat unik untuk tiap mata pelajaran)

Kunci Alternatif (Alternate Key)

Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan.

Kunci Tamu (Foreign Key)

Kunci tamu adalah satu atribut aatau satu set minimal atribut yang melengkapi satu hubungan yang menunjukkan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)

Contoh :

File Transaksi Gaji Bulanan

  • No Pegawai
  • No Bukti
  • Tanggal
  • Jumlah Gaji Kotor
  • Jumlah Potongan
  • Jumlah Gaji Bersih
  • Jumlah Pajak

Kunci Tamu : No Pegawai (karena Gaji berhubungan dengan file Pegawai)

Kunci Primer : No Bukti (karena unik dan mewakili entity)

Kunci Kandidat :  No Pegawai + Nomor Bukti (Unik dan menunjukkan hubungan dengan file Pegawai)

Dalam hubungan dua buah file yang punya relationship banyak lawan banyak maka terdapat 2 kunci tamu pada file konektornya.

Contoh :

File Proyek berisi atribut

  • No Proyek
  • Tgl Mulai
  • Tgl Selesai
  • Anggaran

File Pegawai Berisi Atribut

  • No Pegawai
  • Nama

Hubungan antara file tersebut adalah banyak lawan banyak yaitu satu pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh beberapa pegawai maka untuk menunjukkan hubungan tersebut dipakai file konektor yang berisi kunci tamu dari kedua file. File Proyek Pegawai berisi atribut :

  • No Proyek
  • No Pegawai
  • Jam Kerja

Maka pada file proyek pegawai terdapat kunci tamu yaitu nomor proyek dan no pegawai. Kedua atribut tersebut juga merupakan kunci primer.

Kebergantungan Fungsi

Kebergantungan Fungsi didefinisikan sebagai diberikan sebuah relasi R, atribut Y dan R adalah bergantung fungsi pada atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R (dalam setiap satu waktu).

File relasi pegawai atribut berisi :

  • No Siswa
  • Nama
  • Tpt Lahir
  • Tgl Lahir
  • Alamat
  • Kota

Isi dari atribut nama bergantung pada Nomor Induk Siswa. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada Nomor Siswa dan Nomor Induk Siswa menunjukkan secara fungsi nama. jika anda mengetahui no pegawai maka anda dapat menentukan nama pegawai tersebut. Notasi untuk kebergantungan fungsi ini adalah No Siswa 1DPD atau Nama = f(No Siswa).

Proses Normalisasi, merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, dan membaca / retrieve pada suatu Database. Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal.

Bentuk-Bentuk Normalisasi

Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.

Bentuk Normal Kesatu (1 NF / First Normal Form)

Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu setiap data dibentuk dalam file flat, data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic value”. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan kumpulan data yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga artinya lain.

Bentuk Normal Kedua (2 NF)

Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk Normal Kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan kunci-kunci field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya.

Bentuk Normal Ketiga (3 NF)

Untuk menjadi bentuk Normal Ketiga maka relasi haruslah dalam bentuk Normal Kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Artinya setiap atribut bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh.

Boyce-Codd Normal Form (BNCF)

Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key.

REFERENSI

  1. Ali, Muhammad. 1995. Materi Kuliah Basis Data. Jakarta.
  2. http:// teknik-informatika.com/perancangan-basis-data/
  3. Edisi 1 Tahun 2007 – didik@urindo.ac.id /mata kuliah Sistem Basisdata

SQL Advanced

Tinggalkan komentar

Tujuan

Selama 12 hari terakhir, Anda telah memeriksa setiap topik utama yang digunakan untuk menulis pertanyaan yang kuat untuk mengambil data dari database. Anda juga secara singkat menjelajahi aspek desain database dan database keamanan. Hari ini tujuannya adalah untuk mencakup topik SQL lanjutan, yang meliputi:

  • Sementara tabel
  • Cursors
  • Prosedur tersimpan
  • Pemicu
  • Embedded SQL

CATATAN: Today’s contoh menggunakan Oracle7’s PL / SQL dan / Microsoft’s Transact-SQL Sybase SQL Server implementasi. Kami berusaha untuk memberikan contoh dengan menggunakan kedua rasa dari SQL sedapat mungkin. Anda tidak perlu memiliki salinan baik Oracle7 atau database SQL Server produk. persyaratan Jangan ragu untuk database Anda memilih produk berbasis Anda. (Jika Anda membaca ini untuk mendapatkan pengetahuan yang cukup untuk memulai sebuah proyek untuk pekerjaan Anda, kemungkinan Anda tidak akan punya pilihan.)

CATATAN: Meskipun Anda dapat menerapkan sebagian besar contoh-contoh dalam buku ini untuk sistem manajemen database yang populer, pernyataan ini tidak berlaku untuk semua materi yang dibahas hari ini. Banyak vendor masih tidak mendukung tabel sementara, prosedur tersimpan, dan pemicu. Periksa dokumentasi Anda untuk menentukan fitur tersebut disertakan dengan sistem database favorit Anda.

Tabel Sementara

Topik lanjutan pertama kita bahas adalah penggunaan tabel sementara, yang sebenarnya adalah tabel yang ada sementara dalam database dan secara otomatis berkurang bila pengguna kayu keluar atau koneksi database mereka berakhir. Transact-SQL menciptakan tabel ini sementara dalam database tempdb. Database ini dibuat ketika Anda menginstal SQL Server. Dua jenis sintaks yang digunakan untuk membuat tabel sementara.

Sintaks:

Sintaks 1:
membuat tabel # table_name (
field1 datatype,
.
.
.
fieldn datatype
)

Sintaks 1 menciptakan tabel dalam database tempdb. Tabel ini dibuat dengan nama yang unik yang terdiri dari kombinasi nama tabel yang digunakan dalam perintah CREATE TABLE dan waktu stempel tanggal. Sebuah meja sementara tersedia hanya untuk penciptanya. Lima puluh pengguna secara bersamaan bisa menjalankan perintah berikut:

1> membuat tabel album # (
2> artis char (30),
3> album_name char (50),
4 media_type int>)
5> pergi

Tanda pound (#) sebelum nama tabel adalah identifier bahwa SQL Server menggunakan untuk bendera meja sementara. Masing-masing dari 50 pengguna pada dasarnya akan menerima sebuah meja pribadi untuk dia sendiri menggunakan atau itu. Setiap user bisa update, insert, dan menghapus catatan dari meja ini tanpa perlu khawatir pengguna lain mengabaikan data meja. Tabel ini bisa turun seperti biasa dengan mengeluarkan perintah berikut:

1 tabel drop> # album
2> pergi

Tabel ini juga dapat turun secara otomatis bila pengguna yang menciptakannya kayu keluar dari SQL Server. Jika Anda membuat pernyataan menggunakan beberapa jenis koneksi SQL dinamis (seperti di SQL Server DB-Library), meja akan dihapus ketika koneksi SQL dinamis ditutup.

Sintaks 2 menunjukkan cara lain untuk membuat tabel sementara pada SQL Server. sintaks ini menghasilkan hasil yang berbeda dibandingkan dengan sintaks yang digunakan dalam sintaks 1, jadi berhati-hati untuk memperhatikan perbedaan sintaksis.

Sintaks:

Sintaks 2:
membuat tabel tempdb .. tablename (
field1 datatype,
.
.
.
fieldn datatype)

Membuat tabel sementara dengan menggunakan format sintaks 2 masih hasil dalam sebuah tabel yang dibuat dalam database tempdb. meja Nama ini memiliki format yang sama dengan nama tabel yang dibuat menggunakan 1 sintaks. Perbedaannya adalah bahwa tabel ini tidak berkurang bila pengguna koneksi ke database berakhir. Sebaliknya, pengguna harus benar-benar mengeluarkan perintah TABLE DROP untuk menghapus tabel dari database ini tempdb.

TIP: Cara lain untuk menyingkirkan meja yang dibuat menggunakan tempdb membuat tabel tablename sintaks .. adalah untuk mematikan dan restart SQL Server. Metode ini akan menghapus semua tabel dari database sementara tempdb.
Contoh 13,1 dan 13,2 mengilustrasikan fakta bahwa tabel sementara memang sementara, dengan menggunakan dua bentuk sintaks yang berbeda. Setelah dua contoh, 13,3 menggambarkan Contoh penggunaan umum dari tabel sementara: untuk menyimpan data sementara kembali dari query. Data ini kemudian dapat digunakan dengan permintaan lainnya.

Anda perlu membuat database untuk menggunakan contoh-contoh ini. Database MUSIK dibuat dengan tabel berikut:

ARTIS
MEDIA
Rekaman
Gunakan pernyataan SQL berikut untuk membuat tabel ini:

INPUT:

1> ARTIS membuat tabel (
2> nama char (30),
3> pangkalan char (40),
4 style> char (20),
5 int artist_id>)
6> pergi
1> membuat tabel MEDIA (
2 media_type int>,
3> deskripsi char (30),
4 harga float>)
5> pergi
1> membuat rekaman tabel (
2 int artist_id>,
3 media_type int>,
4> judul char (50),
5 tahun int>)
6> pergi

CATATAN: Tabel 13,1, 13,2, dan 13,3 menampilkan data sampel beberapa untuk tabel ini.
Tabel 13.1. The ARTIS tabel.

Nama Pangkalan Gaya Artist_ID
Suaka Soul Minneapolis Batuan 1
Maurice Ravel Perancis Klasik 2
Dave Matthews Band Charlottesville Batuan 3
Vince Gill Nashville Negara 4
Oingo Boingo Los Angeles Pop 5
Crowded House Selandia Baru Pop 6
Mary Chapin Carpenter- Nashville Negara 7
Edward MacDowell Amerika Serikat Klasik 8
Tabel 13.2. The MEDIA tabel.

Media_Type Deskripsi Harga
1 Catatan 4,99
2 Tape 9,99
3 CD 13,99
4 CD-ROM 29,99
5 DAT 19,99
Tabel 13.3. Tabel rekaman.

Artist_Id Media_Type Judul Tahun
1 2 Hang Waktu 1988
1 3 Made To Be Broken 1986
2 3 Blus pendek wanita 1990
3 5 Berdasarkan Tabel dan Dreaming 1994
4 3 Ketika Cinta Menemukan Anda 1994
5 2 Boingo 1987
5 1 Dead Man’s Party 1984
6 2 Woodface 1990
6 3 Bersama Sendirian 1993
7 5 Come On, Come On 1992
7 3 Batu di Jalan 1994
8 5 Kedua Piano Concerto 1985
Contoh 13,1

Anda dapat membuat tabel sementara dalam database tempdb. Setelah memasukkan catatan dummy ke dalam tabel ini, log out. Setelah masuk kembali ke SQL Server, cobalah untuk memilih catatan dummy dari tabel sementara. Catatan hasil:

INPUT:

1> menciptakan tabel album # (
2> artis char (30),
3> album_name char (50),
4 media_type int>)
5> pergi
1> # album memasukkan nilai-nilai (“The” Penggantian, “Senang Untuk Temui Saya”, 1)
2> pergi

Sekarang log out dari koneksi SQL Server menggunakan EXIT (atau QUIT) perintah. Setelah login kembali dan beralih ke database Anda terakhir digunakan, coba perintah berikut:

INPUT:

1 * pilih> dari album #
2> pergi

ANALISIS:

Tabel ini tidak ada dalam database saat ini.

Contoh 13,2

Sekarang ciptakan tabel dengan 2 sintaks:

INPUT:

1> membuat tabel tempdb album .. (
2> artis char (30),
3> album_name char (50),
4 media_type int>)
5> pergi
1> # album memasukkan nilai-nilai (“The” Penggantian, “Senang Untuk Temui Saya”, 1)
2> pergi

Setelah keluar log dan masuk kembali, beralih ke database yang Anda gunakan saat membuat tabel tempdb .. album () telah diterbitkan, kemudian mengeluarkan perintah berikut:

INPUT:

1 * pilih> dari album # 2> pergi
Kali ini, Anda mendapatkan hasil sebagai berikut:

OUTPUT:

artis album_name media_type
_______________________________________________________________________________________

The Penggantian Senang Untuk Temui Saya 1

Contoh 13,3

Contoh ini menunjukkan penggunaan umum dari tabel sementara: untuk menyimpan hasil query yang kompleks untuk digunakan dalam permintaan kemudian.

INPUT:

1> membuat tabel # temp_info (
2> nama char (30),
3> pangkalan char (40),
4 style> char (20),
5 int artist_id>)
6 menyisipkan> # temp_info
7 * pilih> dari ARTIS mana pangkalan = “Nashville”
8> Pilih Rekaman .* dari rekaman, ARTIS
9> mana RECORDINGS.artist_id = # temp_info.artist_id
10> pergi

Batch sebelumnya perintah memilih keluar informasi merekam untuk semua seniman yang rumahnya dasar Nashville.

Perintah berikut adalah cara lain untuk menulis set pernyataan SQL digunakan dalam 13,3 Contoh:

1> ARTIS pilih .* dari ARTIS, rekaman di mana ARTISTS.homebase = “Nashville”
2> pergi

Cursors

Sebuah database kursor mirip dengan kursor pada layar pengolah kata. Saat Anda menekan tombol Panah Bawah, kursor gulungan bawah melalui teks satu baris pada satu waktu. Menekan tombol Panah gulungan kursor satu baris pada satu waktu. Menekan tombol lain seperti Page Up dan Page Down menghasilkan lompatan beberapa baris ke arah baik. Database cursors beroperasi dengan cara yang sama.

Database cursors memungkinkan Anda untuk memilih sekelompok data, gulir melalui kelompok catatan (sering disebut recordset a), dan memeriksa setiap baris data individu sebagai titik kursor ke sana. Anda dapat menggunakan kombinasi variabel lokal dan kursor untuk memeriksa setiap record secara individual dan melakukan operasi eksternal apapun yang dibutuhkan sebelum pindah ke catatan berikutnya.

Satu penggunaan umum lainnya adalah untuk menyimpan kursor hasil query untuk digunakan nanti. Hasil yang mengatur kursor A dibuat dari hasil set query SELECT. Jika aplikasi Anda atau prosedur memerlukan penggunaan berulang dari satu set catatan, adalah lebih cepat untuk menciptakan kursor sekali dan menggunakannya kembali beberapa kali daripada berulang-ulang query database. (Dan Anda memiliki keuntungan tambahan untuk dapat menelusuri permintaan yang hasilnya ditetapkan dengan kursor.)

Ikuti langkah-langkah untuk membuat, menggunakan, dan menutup kursor database:

  1. Buat kursor.
  2. Buka kursor untuk digunakan dalam prosedur atau aplikasi.
  3. Fetch rekaman data satu baris pada suatu waktu sampai Anda telah mencapai akhir kursor yang mencatat.
  4. Tutup kursor ketika Anda selesai dengan hal itu.
  5. Kursor. Yang Deallocate untuk benar-benar membuangnya.

Menciptakan sebuah kursor

Untuk membuat kursor menggunakan Transact-SQL, masalah sintaks berikut:

Sintaks:

menyatakan kursor cursor_name
untuk select_statement
[Untuk (baca saja | update [dari] column_name_list)]

The Oracle7 SQL sintaks yang digunakan untuk membuat kursor akan terlihat seperti ini:

Sintaks:

MENYATAKAN cursor_name kursor
UNTUK (perintah SELECT | | statement_name block_name)

Dengan mengeksekusi pernyataan cursor_name MENYATAKAN kursor, Anda telah menetapkan menetapkan hasil kursor yang akan digunakan untuk semua operasi kursor Anda. kursor A memiliki dua bagian penting: hasil kursor set dan posisi kursor.

Pernyataan berikut membuat kursor berdasarkan tabel ARTIS:

INPUT:

1> membuat kursor Artists_Cursor
2> untuk * pilih dari ARTIS
3> pergi

ANALISIS:

Sekarang Anda memiliki objek kursor sederhana bernama Artists_Cursor yang berisi semua catatan dalam tabel ARTIS. Tapi pertama-tama Anda harus membuka kursor.

Membuka sebuah kursor

Perintah sederhana untuk membuka kursor untuk digunakan adalah

Sintaks:

terbuka cursor_name

Pelaksana pernyataan berikut membuka Artists_Cursor untuk digunakan:

1> terbuka Artists_Cursor
2> pergi

Sekarang Anda bisa menggunakan kursor untuk menelusuri hasil set.

Scrolling sebuah kursor

Untuk menggulir melalui’s hasil mengatur kursor, Transact-SQL menyediakan perintah FETCH berikut.

Sintaks:

mengambil [cursor_name ke] fetch_target_list

Oracle SQL menyediakan sintaks berikut:

FETCH cursor_name (INTO: host_variable
[[INDIKATOR]:] indicator_variable
[,: Host_variable
[[INDIKATOR]: indicator_variable]] …
| MENGGUNAKAN deskripsi deskripsi)

Setiap kali perintah FETCH dijalankan, uang muka kursor pointer melalui hasil menetapkan satu baris pada satu waktu. Jika diinginkan, data dari setiap baris dapat diambil ke variabel fetch_target_list.

CATATAN: Transact-SQL memungkinkan programmer untuk maju lebih dari satu baris pada satu waktu dengan menggunakan perintah berikut: set nomor baris kursor cursor_name. Perintah ini tidak dapat digunakan dengan klausa INTO, namun. Hal ini berguna hanya untuk meloncat maju dikenal beberapa baris, bukan berulang kali melaksanakan pernyataan FETCH.
Pernyataan berikut mengambil data dari hasil set Artists_Cursor dan mengembalikan data ke variabel program:

INPUT:

1> menyatakan @ nama char (30)
2> menyatakan @ pangkalan char (40)
3> menyatakan gaya char @ (20)
4> menyatakan @ artist_id int
5> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id
6 cetak> @ nama
7> @ pangkalan cetak
8 cetak> @ gaya
9> cetak char (@ artist_id)
10> pergi

Anda dapat menggunakan loop WHILE (lihat Hari 12, “Database Security”) untuk loop melalui mengatur seluruh hasil. Tetapi bagaimana Anda tahu kapan Anda telah mencapai akhir dari catatan?

Pengujian sebuah kursor’s Status

Transact-SQL memungkinkan Anda untuk memeriksa status kursor setiap saat melalui pemeliharaan dari dua variabel global: @ @ @ @ sqlstatus dan rowcount.

The @ @ sqlstatus variabel kembali status informasi tentang pernyataan FETCH dieksekusi terakhir. (The dokumentasi SQL-Transact menyatakan bahwa tidak ada perintah selain pernyataan FETCH dapat memodifikasi variabel sqlstatus @ @ variabel. Ini) berisi salah satu dari tiga nilai. Tabel berikut muncul di manual referensi SQL-Transact:

Arti
0 Menjalankan laporan FETCH.
1 Pernyataan FETCH menghasilkan kesalahan.
2 Tidak ada data yang lebih dalam hasil set.
The @ @ variabel rowcount berisi jumlah baris yang kembali dari kursor hasil disiapkan sesuai dengan mengambil sebelumnya. Anda dapat menggunakan nomor ini untuk menentukan jumlah record di kursor yang hasilnya ditetapkan.

Kode berikut memperpanjang laporan dieksekusi selama diskusi tentang pernyataan FETCH. Anda sekarang menggunakan loop WHILE dengan variabel sqlstatus @ @ untuk menggulir kursor:

INPUT:

1> menyatakan @ nama char (30)
2> menyatakan @ pangkalan char (40)
3> menyatakan @ gaya char (20)
4> menyatakan @ artist_id int
5> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id
6> sementara (sqlstatus @ @ = 0)
7> mulai
8 mencetak> @ nama
9> @ pangkalan cetak
10 mencetak> @ gaya
11> cetak char (@ artist_id)
12> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id
13> akhir
14> pergi

ANALISIS:

Sekarang Anda memiliki kursor sepenuhnya berfungsi! Langkah kiri hanya untuk menutup kursor. Penutupan kursor adalah masalah yang sangat sederhana. Pernyataan itu untuk menutup kursor adalah sebagai berikut:

Sintaks: dekat cursor_name

Kursor ini masih ada, namun itu harus dibuka kembali. Penutupan kursor pada dasarnya menutup set keluar hasilnya, tidak seluruh keberadaan. Ketika Anda benar-benar selesai dengan kursor, perintah DEALLOCATE membebaskan memori yang terkait dengan kursor dan membebaskan nama kursor untuk digunakan kembali. Sintaks pernyataan DEALLOCATE adalah sebagai berikut:

Sintaks:

deallocate cursor_name kursor

Contoh 13,4 mengilustrasikan proses lengkap dari kursor menciptakan, menggunakan, dan kemudian menutupnya, menggunakan Transact-SQL.

Contoh 13,4

INPUT:

1> menyatakan @ nama char (30)
2> menyatakan @ pangkalan char (40)
3> menyatakan @ gaya char (20)
4> menyatakan @ artist_id int
5> membuat kursor Artists_Cursor
6> untuk * pilih dari ARTIS
7> terbuka Artists_Cursor
8> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id
9> sementara (sqlstatus @ @ = 0)
10> mulai
11 mencetak> @ nama
12> @ pangkalan cetak
13 mencetak> @ gaya
14> cetak char (@ artist_id)
15> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id
16> akhir
17> dekat Artists_Cursor
18> deallocate kursor Artists_Cursor
19> pergi

CATATAN: Berikut ini adalah data sampel saja.
OUTPUT:

Soul Asylum Minneapolis Rock 1
Perancis Maurice Ravel Klasik 2
Dave Matthews Band 3 Charlottesville Rock
Nashville Vince Gill 4 Negara
Los Angeles Boingo Oingo Pop 5
Crowded House Selandia Baru Pop 6
Mary Chapin Carpenter Nashville Negara-7
Edward USA MacDowell Klasik 8

Lingkup cursors

Tidak seperti tabel, indeks, dan objek lain seperti pemicu dan prosedur yang tersimpan, kursor tidak ada sebagai objek database setelah mereka diciptakan. Sebaliknya, cursors memiliki ruang lingkup terbatas digunakan.

PERINGATAN: Ingat, bagaimanapun, bahwa memori tetap dialokasikan untuk kursor, meskipun namanya mungkin tidak ada lagi. Sebelum pergi ke luar kursor’s lingkup, kursor harus selalu tertutup dan deallocated.
Sebuah kursor dapat dibuat dalam tiga wilayah:

Dalam sesi – sesi dimulai ketika pengguna log on. Jika pengguna login ke SQL Server dan kemudian membuat kursor, lalu cursor_name akan ada sampai user logout. Pengguna tidak dapat menggunakan kembali cursor_name selama sesi berjalan. Prosedur Tersimpan – Sebuah kursor dibuat di dalam sebuah prosedur yang disimpan adalah baik hanya selama pelaksanaan prosedur yang tersimpan. Begitu keluar dari prosedur yang tersimpan, cursor_name tidak berlaku lagi. Trigger – Sebuah kursor dibuat di dalam memicu memiliki pembatasan yang sama sebagai salah satu dibuat di dalam sebuah prosedur yang tersimpan.

Menciptakan dan Menggunakan Stored Prosedur

Konsep disimpan adalah prosedur yang penting bagi programmer profesional untuk menguasai database. Stored prosedur adalah fungsi yang berisi pengelompokan berpotensi besar pernyataan SQL. Fungsi-fungsi ini dipanggil dan dijalankan hanya sebagai C, FORTRAN, atau Visual Basic fungsi akan dipanggil. Sebuah prosedur yang tersimpan harus encapsulate seperangkat logis dari perintah yang sering dieksekusi (seperti satu set query kompleks, pembaruan, atau sisipan). prosedur Tersimpan memungkinkan programmer untuk sekadar panggilan prosedur disimpan sebagai sebuah fungsi bukan berulang kali menjalankan pernyataan di dalam prosedur yang tersimpan. Namun, prosedur yang tersimpan memiliki keunggulan tambahan.

Sybase, Inc, mempelopori prosedur yang tersimpan dengan produk SQL Server di akhir 1980-an. Prosedur-prosedur ini dibuat dan kemudian disimpan sebagai bagian dari database, seperti tabel dan indeks disimpan dalam database. Transact SQL izin baik parameter input dan output untuk panggilan prosedur disimpan. Mekanisme ini memungkinkan Anda untuk membuat prosedur yang disimpan dengan cara generik sehingga variabel dapat dikirimkan kepada mereka.

Salah satu keuntungan terbesar dengan prosedur yang tersimpan terletak pada desain eksekusi mereka. Ketika menjalankan sebuah batch besar pernyataan SQL ke server database melalui jaringan, aplikasi Anda selalu berkomunikasi dengan server, yang dapat membuat berat beban yang sangat pada jaringan yang sangat cepat. Pada beberapa pengguna menjadi terlibat dalam komunikasi ini, kinerja jaringan dan database server menjadi semakin lambat. Penggunaan prosedur disimpan memungkinkan programmer untuk mengurangi beban komunikasi ini.

Setelah dilakukan prosedur yang tersimpan, laporan dijalankan secara berurutan pada SQL server database. Beberapa pesan atau data dikembalikan ke pengguna komputer hanya ketika prosedur ini selesai. Pendekatan ini meningkatkan kinerja dan menawarkan keuntungan lain juga. Stored prosedur sebenarnya dikompilasi oleh mesin database pertama kali digunakan. Peta dikompilasi disimpan pada server dengan prosedur. Dengan demikian, Anda tidak perlu laporan SQL mengoptimalkan setiap kali Anda mengeksekusi mereka, yang juga meningkatkan kinerja.

Gunakan sintaks berikut untuk membuat sebuah prosedur disimpan menggunakan Transact-SQL:

Sintaks:

membuat prosedur procedure_name
[[(]Parameter_name
datatype [(panjang) | ([presisi,] skala)
default] = [] output [
[, @ Parameter_name
datatype [(panjang) | ([presisi,] skala)
default] = []]…[)]] output [
[Dengan mengkompilasi ulang]
sebagai SQL_statements

Jalankan perintah ini mengeksekusi prosedur:

Sintaks:

melaksanakan [@ return_status =]
procedure_name
[[@ Parameter_name =] nilai |
[@ Parameter_name =] @ variabel [output ]…]]
[Dengan mengkompilasi ulang]

Contoh 13,5

Contoh ini membuat prosedur sederhana menggunakan isi dari Contoh 13.4.

INPUT:

1> menciptakan prosedur Print_Artists_Name
2> sebagai
3> menyatakan @ nama char (30)
4> menyatakan @ pangkalan char (40)
5> menyatakan @ gaya char (20)
6> menyatakan @ int artist_id
7> membuat kursor
8>Artists_Cursor> untuk memilih * dari ARTIS
9> terbuka Artists_Cursor
10> mengambil Artists_Cursor ke @ nama, @ pangkalan, @ gaya, @ artist_id 11> sementara (sqlstatus @ @ = 0)
12> mulai mencetak
13> @ nama
 14> mengambil Artists_Cursor ke @ nama, @ pangkalan, gaya @, @ artist_id
 15> akhir
16> dekat Artists_Cursor
17> deallocate kursor Artists_Cursor
18> pergi

Anda sekarang dapat menjalankan prosedur Print_Artists_Name menggunakan pernyataan Jalankan:

INPUT:

1> mengeksekusi Print_Artists_Name
2> pergi

OUTPUT:

Soul Asylum
Maurice Ravel
Dave Matthews Band
Vince Gill
Oingo Boingo
Crowded House
Mary Chapin Carpenter-
Edward MacDowell

Contoh 13,5 merupakan prosedur yang disimpan kecil, namun, suatu prosedur yang tersimpan dapat berisi banyak pernyataan, yang berarti Anda tidak perlu mengeksekusi setiap pernyataan secara individual.

Parameter Menggunakan Stored Prosedur

Contoh 13,5 merupakan langkah awal yang penting karena menunjukkan penggunaan PROSEDUR pernyataan CREATE sederhana. Namun, dengan melihat sintaks yang diberikan di sini, Anda dapat melihat bahwa ada lebih ke laporan PROSEDUR CREATE dari yang ditunjukkan pada Contoh 13.5. prosedur tersimpan juga menerima parameter sebagai masukan untuk laporan SQL mereka. Selain itu, data dapat kembali dari suatu prosedur yang tersimpan melalui penggunaan parameter output.

Masukan nama parameter harus dimulai dengan simbol @, dan parameter-parameter ini harus menjadi Transact-SQL yang valid tipe data. Nama parameter output juga harus dimulai dengan simbol @. Selain itu, kata kunci OUTPUT harus mengikuti nama parameter output. (Anda juga harus memberi kata kunci ini OUTPUT ketika menjalankan prosedur yang tersimpan.)

Contoh 13,6 menunjukkan penggunaan parameter masukan untuk suatu prosedur yang tersimpan.

Contoh 13,6

Prosedur tersimpan berikut memilih nama semua seniman yang tipe media CD:

1> menciptakan prosedur Match_Names_To_Media @ deskripsi char (30)
2> sebagai
3 pilih ARTISTS.name> dari ARTIS, MEDIA, rekaman
4> mana MEDIA.description = @ deskripsi dan
5> MEDIA.media_type = RECORDINGS.media_type dan
6 RECORDINGS.artist_id> = ARTISTS.artist_id
7> pergi
1> melaksanakan Match_Names_To_Media “CD”
2> pergi

Pelaksana pernyataan ini akan kembali berikut kumpulan catatan:

OUTPUT:

NAMA
Soul Asylum
Maurice Ravel
Vince Gill
Crowded House
Mary Chapin Carpenter-

Contoh 13,7

Contoh ini mendemonstrasikan penggunaan parameter output. Fungsi ini mengambil artis pangkalan sebagai input dan mengembalikan artis namanya sebagai output:

INPUT:

1> menciptakan prosedur Match_Homebase_To_Name @ pangkalan char (40), @ nama char (30) output
2> sebagai
3 pilih @ nama = nama dari ARTIS mana pangkalan = @ pangkalan
4> pergi
1> menyatakan @ return_name char (30)
2> melaksanakan Match_Homebase_To_Name “Los Angeles”, return_name @ @ output = nama
3 mencetak> @ nama
4> pergi

OUTPUT:

Oingo Boingo

Menghapus sebuah Prosedur Tersimpan

Sekarang, Anda mungkin dapat membuat dugaan terpelajar tentang bagaimana untuk menyingkirkan suatu prosedur yang tersimpan. Jika Anda menebak perintah DROP, Anda benar-benar benar. Pernyataan berikut menghapus sebuah prosedur yang disimpan dari database:

Sintaks:

procedure_name drop prosedur

Perintah DROP sering digunakan: Sebelum suatu prosedur yang disimpan dapat diciptakan kembali, prosedur lama dengan namanya harus turun. Dari pengalaman pribadi, ada beberapa kasus di mana prosedur dibuat dan kemudian tidak pernah diubah. Sering kali, pada kenyataannya, kesalahan terjadi di suatu tempat dalam laporan yang menyusun prosedur. Kami menyarankan Anda membuat prosedur Anda disimpan menggunakan skrip SQL file yang berisi semua laporan Anda. Anda dapat menjalankan script file ini melalui server database Anda untuk menjalankan laporan yang Anda inginkan dan membangun kembali prosedur Anda. Teknik ini memungkinkan Anda untuk menggunakan editor teks biasa seperti vi atau Windows Notepad untuk membuat dan menyimpan script SQL Anda. Ketika menjalankan skrip ini, namun Anda harus ingat untuk selalu drop prosedur, meja, dan seterusnya dari database sebelum membuat yang baru. Jika Anda lupa perintah DROP, akan menghasilkan kesalahan.

Sintaks berikut ini sering digunakan dalam file script SQL Server sebelum membuat objek database:

Sintaks:

if exists (select * from sysobjects where name = “procedure_name”)
begin
drop procedure procedure_name
akhir
pergi
create procedure procedure_name
sebagai
.
.
.

Perintah-perintah ini memeriksa meja SYSOBJECTS (dimana database informasi objek disimpan di SQL Server) untuk melihat apakah ada obyek. Jika tidak, itu dijatuhkan sebelum yang baru dibuat. Membuat file naskah dan mengikuti langkah-langkah sebelumnya menghemat sejumlah besar waktu (dan banyak potensi kesalahan) dalam jangka panjang.

Nesting Prosedur Tersimpan

panggilan prosedur tersimpan juga dapat diulang untuk pemrograman modularitas meningkat.Sebuah prosedur yang tersimpan dapat panggilan lain prosedur yang tersimpan, yang kemudian dapat panggilan lain prosedur yang tersimpan, dan sebagainya. Nesting prosedur disimpan adalah ide yang bagus untuk beberapa alasan:

Nesting prosedur yang tersimpan mengurangi query Anda yang paling rumit untuk tingkat fungsional. (Alih-alih melaksanakan 12 queries dalam berturut-turut, Anda mungkin bisa mengurangi ini 12 pertanyaan untuk tiga disimpan panggilan prosedur, tergantung pada situasi.)
Nesting prosedur yang tersimpan meningkatkan kinerja. The query optimizer mengoptimalkan lebih kecil, kelompok yang lebih singkat dari pertanyaan lebih efektif dari satu grup besar laporan.
Ketika Prosedur disimpan bersarang, setiap variabel atau obyek database yang dibuat dalam satu disimpan Prosedur terlihat ke semua prosedur yang tersimpan itu panggilan. Setiap variabel lokal atau objek sementara (seperti tabel sementara) akan dihapus pada akhir prosedur tersimpan yang menciptakan elemen-elemen ini.

Ketika mempersiapkan besar file script SQL, Anda bisa berjalan ke meja atau database objek masalah referensi. Anda harus membuat prosedur tersimpan nested sebelum Anda dapat memanggil mereka. Namun, prosedur memanggil mungkin membuat tabel sementara atau kursor yang kemudian digunakan dalam prosedur disimpan disebut. Prosedur ini disebut disimpan tidak menyadari tabel ini sementara atau kursor, yang dibuat kemudian pada file script. Cara termudah mengatasi masalah ini adalah untuk menciptakan objek sementara sebelum semua prosedur yang tersimpan dibuat, kemudian drop item sementara (dalam file script) sebelum mereka diciptakan lagi dalam prosedur yang tersimpan. Apakah Anda bingung belum? Contoh 13,8 akan membantu Anda memahami proses ini.

Contoh 13,8

INPUT:

1> create procedure Example13_8b
2> as
3> select * from #temp_table
4> go
1> create procedure Example13_8a
2> as
3> create #temp_table (
4> data char(20),
5> numbers int)
6> execute Example13_8b
7> drop table #temp_table
8> go

ANALISIS:

s Anda dapat melihat, prosedur Example13_8b menggunakan # temp_table. Namun, # temp_table tidak diciptakan sampai nanti (dalam prosedur Example13_8a). Hasil ini merupakan kesalahan prosedur penciptaan. Bahkan, karena Example13_8b tidak diciptakan (karena meja hilang # temp_table), prosedur Example13_8a tidak diciptakan baik (karena Example13_8b tidak diciptakan).

Kode berikut perbaikan masalah ini dengan menciptakan # temp_table sebelum prosedur pertama dibuat. # Temp_table kemudian jatuh sebelum penciptaan prosedur kedua:

INPUT:

1> create #temp_table (
2> data char(20),
3> numbers int)
4> go
1> create procedure Example13_8b
2> as
3> select * from #temp_table
4> go
1> drop table #temp_table
2> pergi
1> create procedure Example13_8a
2> as
3> create #temp_table (
4> data char(20),
5> numbers int)
6> execute Example13_8b
7> drop table #temp_table
8> go

Designing and Using Triggers

Memicu pada dasarnya adalah tipe khusus prosedur tersimpan yang dapat dijalankan sebagai tanggapan terhadap salah satu dari tiga kondisi:

An UPDATE
An INSERT
A DELETE
The Transact-SQL syntax to create a trigger looks like this:

Sintaks:

create trigger trigger_name
on table_name
for {insert, update, delete}
as SQL_Statements

The Oracle7 SQL syntax used to create a trigger follows.

Sintaks:

CREATE [OR REPLACE] TRIGGER [schema.]trigger_name
{BEFORE | AFTER}
{DELETE | INSERT | UPDATE [OF column[, column]…]}
[OR {DELETE | INSERT | UPDATE [OF column [, column] …]}]…
ON [schema.]table
[[REFERENCING { OLD [AS] old [NEW [AS] new]
| NEW [AS] new [OLD [AS] old]}]
FOR EACH ROW
[WHEN (condition)] ]
pl/sql statements…

Pemicu yang paling berguna untuk menegakkan integritas referensial, sebagaimana disebutkan pada Hari 9, “Menciptakan dan Mempertahankan Tabel,” ketika Anda belajar bagaimana untuk membuat tabel. integritas Referential memaksa aturan digunakan untuk memastikan bahwa data tetap berlaku di beberapa meja. Misalkan pengguna memasukkan perintah berikut:

INPUT:

1> insert RECORDINGS values (12, “The Cross of Changes”, 3, 1994)
2> pergi

ANALISIS:

Menyisipkan pernyataan ini berlaku sempurna SQL rekor baru dalam tabel rekaman. Namun, pemeriksaan cepat dari tabel ARTIS menunjukkan bahwa tidak ada Artist_ID = 12. Seorang pengguna dengan hak akses INSERT pada tabel rekaman benar-benar dapat menghancurkan integritas referensial Anda.

Catatan: Meskipun sistem database yang dapat menegakkan integritas referensial melalui penggunaan kendala dalam pernyataan CREATE TABLE, memicu menyediakan fleksibilitas yang lebih banyak. Kendala kembali pesan kesalahan sistem untuk pengguna, dan (karena Anda mungkin tahu sekarang) pesan error ini tidak selalu membantu. Di sisi lain, memicu dapat mencetak pesan kesalahan, telepon prosedur yang tersimpan lain, atau mencoba untuk memperbaiki masalah jika perlu.
Pemicu dan Transaksi

Tindakan dilakukan dalam memicu secara implisit dilaksanakan sebagai bagian dari transaksi.Berikut urutan peristiwa yang luas:

  1. A BEGIN TRANSACTION statement is implicitly issued (for tables with triggers).
  2. The insert, update, or delete operation occurs.
  3. The trigger is called and its statements are executed.
  4. The trigger either rolls back the transaction or the transaction is implicitly committed.

Example 13.9

This example illustrates the solution to the RECORDINGS table update problem mentioned earlier.

INPUT:

1> create trigger check_artists
2> on RECORDINGS
3> for insert, update as
4> if not exists (select * from ARTISTS, RECORDINGS
5> where ARTISTS.artist_id = RECORDINGS.artist_id)
6> begin
7> print “Illegal Artist_ID!”
8> rollback transaction
9> akhir
10> go

ANALISIS:

Masalah yang sama bisa ada untuk menghapus dari tabel rekaman. Anggaplah bahwa ketika Anda menghapus data hanya seorang artis dari meja rekaman, Anda juga ingin menghapus artis dari meja ARTIS. Jika catatan sudah dihapus ketika memicu dipecat, bagaimana Anda tahu mana Artist_ID harus dihapus? Ada dua metode untuk memecahkan masalah ini:

Hapus semua seniman dari meja ARTIS yang tidak lagi memiliki rekaman dalam tabel rekaman. (Lihat Contoh 13.10a.) Periksa tabel logis dihapus. Transact-SQL mempertahankan dua tabel: DIHAPUS dan dimasukkan. Tabel ini, yang mempertahankan perubahan terbaru paling ke meja yang sebenarnya, memiliki struktur yang sama dengan tabel yang memicu dibuat meja. Oleh karena itu, Anda dapat mengambil ID dari artis DIHAPUS meja dan kemudian hapus ID dari ARTIS tersebut. (Lihat 13.10b Contoh.)

Contoh 13.10a

INPUT:

1> menciptakan delete_artists memicu
2> pada rekaman
3> untuk menghapus sebagai
4> mulai
5> menghapus dari ARTIS mana artist_id tidak
6> (pilih artist_id dari rekaman)
7> akhir
8> pergi

Contoh 13.10b

1> menciptakan delete_artists memicu
2> pada rekaman
3> untuk menghapus sebagai
4> mulai
5> menghapus ARTIS dari ARTIS, dihapus
6> di mana ARTIST.artist_id = deleted.artist_id
7> akhir
8> pergi

Menggunakan pembatasan Pemicu

Anda harus mengamati batasan berikut ketika Anda menggunakan pemicu:

Pemicu tidak dapat dibuat pada tabel temporer.
Pemicu harus diciptakan pada tabel dalam database saat ini.
Pemicu tidak dapat dibuat pada tampilan.
Ketika meja terjatuh, semua memicu terkait dengan tabel yang otomatis menurun dengan itu.
Pemicu bersarang

Pemicu juga dapat bersarang. Katakanlah bahwa Anda telah membuat sebuah pemicu api menghapus, misalnya. Jika ini memicu sendiri kemudian menghapus catatan, database server dapat diatur untuk memicu api lain. Pendekatan ini, tentu saja, hasil dalam satu lingkaran, berakhir hanya ketika semua catatan dalam tabel itu dihapus (atau beberapa kondisi internal memicu dipenuhi). Nesting perilaku tidak default, namun. Lingkungan harus diatur untuk memungkinkan jenis fungsionalitas. Konsultasikan’s database server dokumentasi Anda untuk informasi lebih lanjut tentang topik ini.

Menggunakan Perintah SELECT dengan UPDATE dan DELETE

Berikut adalah beberapa pernyataan SQL yang kompleks menggunakan UPDATE dan DELETE:

INPUT:

SQL> UPPDATE EMPLOYEE_TBL
SET LAST_NAME = ‘SMITH’
Ada WHERE (SELECT EMPLOYEE_ID
DARI PAYROLL_TBL
WHERE EMPLOYEE_ID = 2);

OUTPUT:

1 baris diperbarui.

ANALISIS:

Tabel KARYAWAN memiliki nama karyawan yang salah. Kami memperbarui tabel EMPLOYEE hanya jika tabel penggajian memiliki ID yang benar.

INPUT / OUTPUT:

SQL> UPDATE EMPLOYEE_TABLE
SET HOURLY_PAY = ‘HOURLY_PAY * 1,1
WHERE EMPLOYEE_ID = (SELECT EMPLOYEE_ID
DARI PAYROLL_TBL
WHERE EMPLOYEE_ID = ‘222222222 ‘);

1 baris diperbarui.

ANALISIS:

Kami meningkatkan tarif per jam karyawan sebesar 10 persen.

INPUT / OUTPUT:

SQL> HAPUS DARI EMPLOYEE_TBL
WHERE EMPLOYEE_ID = (SELECT EMPLOYEE_ID
DARI PAYROLL_TBL
WHERE EMPLOYEE_ID = ‘222222222 ‘;
1 baris dihapus.

ANALISIS:

Di sini kita dihapus karyawan dengan ID dari 222.222.222.

Pengujian SELECT Laporan Sebelum Pelaksanaan

Jika Anda membuat laporan (menggunakan PLUS * SQL untuk contoh) dan laporan agak besar, Anda mungkin ingin memeriksa spasi, kolom, dan judul sebelum menjalankan program dan membuang banyak waktu. Sebuah cara sederhana untuk memeriksa adalah dengan menambahkan tempat rownum pilih *
dari employee_tbl
mana rownum <5;

ANALISIS:

Anda mendapatkan empat baris pertama dalam tabel dari mana Anda dapat memeriksa ejaan dan spasi untuk melihat apakah Anda cocok. Jika tidak, laporan Anda dapat kembali ratusan atau ribuan baris sebelum Anda menemukan kesalahan ejaan atau spasi yang tidak tepat.

TIP: Sebagian besar dari pekerjaan Anda – mungkin 50 persen – adalah untuk mencari tahu apa yang pelanggan Anda benar-benar keinginan dan kebutuhan. Keterampilan komunikasi yang baik dan pengetahuan tentang bisnis tertentu yang bekerja untuk Anda akan melengkapi program keterampilan Anda. Misalnya, Anda adalah programmer di sebuah dealer mobil.. Mobil bekas manajer ingin mengetahui berapa banyak kendaraan dia mendatang inventaris Anda berpikir (untuk diri sendiri): Go menghitungnya. Yah, dia meminta berapa banyak kendaraan dia, tetapi Anda tahu bahwa untuk persediaan manajer benar-benar ingin tahu bagaimana mobil (, truk), model, banyak model tahun jenis, dan sebagainya. Jika Anda memberikan apa yang ia minta dan membuang waktu Anda, atau jika Anda memberikan apa yang dia butuhkan?
Embedded SQL

Buku ini menggunakan istilah embedded SQL untuk merujuk pada topik yang lebih besar untuk menulis kode program yang sebenarnya menggunakan SQL – yaitu, menulis prosedur tersimpan tertanam dalam database yang dapat dipanggil oleh sebuah program aplikasi untuk melakukan tugas tertentu. Beberapa sistem database datang dengan tool kit lengkap yang memungkinkan Anda untuk membangun objek layar menu sederhana dan menggunakan kombinasi bahasa pemrograman hak milik dan SQL. Kode SQL tertanam dalam kode ini.

Di lain pihak, SQL tertanam umumnya mengacu pada apa yang secara teknis dikenal sebagai Statis SQL.

Statis dan dinamis SQL

SQL statis berarti embedding pernyataan SQL secara langsung dalam kode pemrograman. Kode ini tidak dapat diubah pada saat runtime. Pada kenyataannya, sebagian besar implementasi Statis SQL memerlukan penggunaan precompiler yang perbaikan pernyataan SQL pada saat runtime. Baik Oracle dan Informix telah mengembangkan paket SQL Statis untuk sistem database mereka. Produk ini mengandung precompilers untuk digunakan dengan beberapa bahasa, termasuk yang berikut:

Pascal
Ada
COBOL
FORTRAN
Beberapa keuntungan dari Statis SQL

Peningkatan kecepatan runtime
Kompilasi-time error memeriksa
Kelemahan Statis SQL adalah bahwa

Ini adalah fleksibel.  Hal ini membutuhkan kode lebih (karena query tidak dapat dirumuskan pada saat runtime). Kode SQL statis tidak portabel dengan sistem database lain (faktor yang Anda harus selalu mempertimbangkan). Jika Anda mencetak salinan kode ini, laporan SQL muncul di sebelah kode bahasa C (atau apa pun bahasa yang Anda gunakan). Program variabel terikat untuk field pada database menggunakan perintah precompiler. Lihat Contoh 13,11 contoh sederhana untuk kode SQL statis.

Dynamic SQL, di sisi lain, memungkinkan para programmer untuk membangun pernyataan SQL pada saat runtime dan meneruskan pernyataan ini ke mesin database. Mesin kemudian kembali data ke dalam variabel program, yang juga terikat pada runtime. Topik ini dibahas secara menyeluruh pada hari 12.

Contoh 13,11

Contoh ini menggambarkan penggunaan Static SQL pada fungsi C. Harap dicatat bahwa sintaks yang digunakan di sini tidak sesuai dengan standar ANSI. Statis sintaks SQL ini tidak benar-benar sesuai dengan produk komersial, meskipun sintaks yang digunakan adalah mirip dengan produk komersial yang paling.

INPUT:

Bool Print_Employee_Info (void)
(
Umur int = 0;
Char Nama [41] = “\ 0”;
Char Alamat [81] = “\ 0”;
/ * Sekarang Bind Setiap Bidang Kami Akan Pilih Untuk sebuah * Variabel Program /
# BIND SQL (UMUR, Umur)
# BIND SQL (NAMA, Nama);
# BIND SQL (ALAMAT, Address);
/ * Laporan di atas “bind” field dari database ke variabel dari program ini.
Setelah kami query database, kita akan gulir ke catatan kembali
dan kemudian mencetaknya ke layar * /

# UMUR SELECT SQL, NAMA, ALAMAT DARI KARYAWAN;

# SQL FIRST_RECORD
if (Umur == NULL)
(
return FALSE;
)
sementara (Umur! = NULL)
(
printf (“UMUR =% d \ n, Umur);
printf (“NAME =% s \ n, Nama);
printf (“ALAMAT =% s \ n”, Alamat);
# SQL NEXT_RECORD
)
mengembalikan TRUE;

)

ANALISIS:

Setelah Anda ketik kode Anda dan simpan file tersebut, kode tersebut biasanya berlangsung melalui beberapa jenis precompiler. precompiler ini mengubah baris yang dimulai dengan direktif precompiler SQL # untuk kode C aktual, yang kemudian dikompilasi dengan sisa program anda untuk menyelesaikan tugas di tangan.

If you have never seen or written a C program, don’t worry about the syntax used in Example 13.11. (As was stated earlier, the Static SQL syntax is only pseudocode. Consult the Static SQL documentation for your product’s actual syntax.)

Programming with SQL

Sejauh ini, kita telah membahas dua digunakan untuk pemrograman dengan SQL. Yang pertama, yang merupakan fokus dari 12 hari pertama buku ini, digunakan untuk menulis SQL query dan memodifikasi data. Yang kedua adalah kemampuan untuk pernyataan SQL menanamkan dalam ketiga kode-atau bahasa generasi keempat. Jelas, penggunaan pertama untuk SQL sangat penting jika Anda ingin memahami bahasa dan pemrograman database secara umum. Kita telah membahas kelemahan tertanam atau statis menggunakan SQL sebagai lawan Dynamic SQL. 18 hari, “PL / SQL: An Introduction,” dan Hari 19 “Transact-SQL: An Introduction,” mencakup dua ekstensi ke SQL yang dapat Anda gunakan bukan embedded SQL untuk melakukan yang sama jenis fungsi dibahas dalam bagian ini.

Ringkasan

Popularitas lingkungan pemrograman seperti Visual Basic, Delphi, dan database programer PowerBuilder memberikan banyak tools yang bagus untuk mengeksekusi query dan pemutakhiran data dengan database. Namun, karena Anda menjadi semakin terlibat dengan database, Anda akan menemukan keuntungan menggunakan alat dan topik yang dibahas hari ini. Sayangnya, konsep seperti cursors, pemicu, dan inovasi prosedur disimpan adalah database terbaru dan memiliki tingkat rendah standardisasi seluruh produk. Namun, teori dasar penggunaan di balik semua fitur adalah sama dalam semua sistem manajemen database.

Temporary tabel adalah tabel yang ada selama sesi pengguna. Tabel ini biasanya ada dalam database khusus (bernama tempdb bawah SQL Server) dan sering diidentifikasi dengan stempel tanggal-waktu yang unik serta nama. Temporary tabel dapat menyimpan hasil set dari permintaan untuk penggunaan kemudian oleh pertanyaan lain. Kinerja bisa mengikis Namun, jika banyak pengguna yang membuat dan menggunakan tabel sementara sekaligus, karena jumlah besar aktivitas yang terjadi dalam database tempdb.

Cursors dapat menyimpan hasil set untuk menelusuri hasil ini menetapkan satu catatan pada waktu (atau beberapa catatan waktu jika diinginkan). Pernyataan FETCH digunakan dengan kursor untuk mengambil individu yang merekam data dan juga untuk gulir kursor ke catatan berikutnya. Berbagai variabel sistem dapat dimonitor untuk menentukan apakah catatan akhir telah tercapai.

prosedur Tersimpan adalah objek database yang dapat menggabungkan beberapa statemen SQL ke satu fungsi. prosedur tersimpan dapat menerima dan kembali nilai-nilai parameter serta memanggil prosedur tersimpan lainnya. Prosedur-prosedur ini dijalankan pada server database dan disimpan dalam bentuk disusun dalam database. Menggunakan prosedur yang tersimpan, daripada melaksanakan permintaan mandiri, meningkatkan kinerja.

Pemicu adalah prosedur khusus yang disimpan yang dijalankan ketika mengalami sebuah tabel INSERT, DELETE, atau UPDATE operasi. Pemicu sering menegakkan integritas referensial dan juga dapat memanggil prosedur tersimpan lainnya.

Embedded SQL adalah penggunaan SQL pada kode program sebenarnya. Embedded SQL terdiri dari kedua Statik dan Dinamis SQL pernyataan. Statis SQL tidak dapat diubah saat runtime; Dynamic SQL dapat berubah.

Sumber ;  http://www.webbasedprogramming.com

SQL Resolusi

Tinggalkan komentar

Tujuan

Anda akan menjadi akrab dengan:

  • Beberapa kesalahan dan resolusi khas mereka
  • Common logis kelemahan pengguna SQL
  • Cara untuk mencegah kemunduran sehari-hari disebabkan oleh kesalahan

Pengenalan

Hari ini Anda akan melihat berbagai kesalahan umum bahwa setiap orang – dari pemula sampai pro – membuat saat menggunakan SQL. Anda tidak akan pernah bisa menghindari semua kesalahan dan / atau kesalahan, tapi menjadi akrab dengan berbagai kesalahan akan membantu Anda mengatasinya dalam waktu sesingkat mungkin.

CATATAN: Toturial ini menggunakan Oracle7 untuk contoh. Implementasi tertentu Anda akan sangat mirip dalam jenis kesalahan, tetapi mungkin berbeda dalam penomoran atau penamaan kesalahan. Kami berlari pernyataan SQL kita menggunakan SQL * PLUS dan mengatur ECHO dan KOMENTAR untuk terus untuk melihat pernyataan itu.

Diketahui bahwa beberapa kesalahan benar-benar akan menghasilkan pesan kesalahan, sementara orang lain mungkin hanya ketidakmampuan dalam logika yang mau tidak mau akan menyebabkan signifikan lebih banyak error atau masalah di jalan. Dengan arti sempit perhatian terhadap detail, Anda dapat menghindari masalah yang paling, meskipun Anda akan selalu menemukan diri terhuyung-huyung di atas kesalahan.

Kesalahan umum

Bagian ini menjelaskan banyak kesalahan umum bahwa Anda akan menerima sementara melaksanakan semua jenis laporan SQL. Sebagian besar sederhana dan membuat Anda ingin menendang diri Anda pada sisi belakang, tampak jelas kesalahan lainnya sedangkan yang menyesatkan.

Tabel atau Lihat Tiada

Ketika Anda menerima kesalahan yang menyatakan bahwa meja yang Anda coba akses tidak eksis, tampak jelas, misalnya:

INPUT:
SQL> @tables.sql
OUTPUT:
SQL> spool tables.lst
SQL> set echo on
SQL> set feedback on
SQL> set pagesize 1000
SQL> select owner|| '.' || table_name
   2  from sys.dba_table
   3  where owner = 'SYSTEM'
   4  order by table_name
   5  /
       from sys.dba_table
      *
ERROR at line 2:
ORA-00942: table or view does not exist
 SQL> spool off
 SQL>

ANALISIS:

Perhatikan asterisk di bawah tabel kata. Nama tabel yang benar adalah sys.dba_tables. S Sebuah dihilangkan dari nama tabel.

Tetapi bagaimana jika Anda tahu meja ada dan Anda masih menerima kesalahan ini? Kadang-kadang bila Anda menerima kesalahan ini, meja sebenarnya tidak ada, tetapi mungkin ada masalah keamanan – yang adalah, meja ada, tapi Anda tidak memiliki akses ke sana. Kesalahan ini juga dapat database server jalan mengatakan bagus, “Anda tidak memiliki izin untuk mengakses tabel ini!”

TIP: Sebelum Anda memungkinkan untuk mengatur dalam panik, segera memverifikasi apakah atau tidak meja ada menggunakan account DBA, jika tersedia, atau account skema. Anda akan sering menemukan bahwa meja tidak ada dan bahwa pengguna tidak memiliki hak istimewa yang sesuai untuk mengaksesnya.
Username atau Password tidak valid

INPUT:
  SQL * Plus: Release 3.2.3.0.0 - pada Sabtu 10 Mei 11:15:35 1997 
  Copyright (c) 1979 Oracle Corporation, 1994.  All rights reserved. 
  Masukkan nama pengguna: rplew 
  Masukkan sandi:
OUTPUT:
  ERROR: ORA-01017: invalid username / password; logon ditolak 
  Masukkan nama pengguna: 

Kesalahan ini disebabkan baik oleh salah memasukkan username atau password salah. Coba lagi. Jika tidak berhasil, telah mereset password Anda. Jika Anda yakin bahwa Anda mengetikkan username dan password yang benar, maka pastikan bahwa Anda mencoba untuk menyambung ke database yang benar jika Anda memiliki akses ke lebih dari satu database.

Dari Kata Kunci Tidak Tertentu

INPUT:
  SQL> @ tblspc.sql
OUTPUT:
  SQL> spool tblspc.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> set PageSize 1000 
  SQL> pilih substr (tablespace_name, 1,15) suatu, 
    2 substrfile_name, 1,45) c, byte 
    3 dari sys.dba_data_files 
    4 order by tablespace_name; 
       substrfile_name, 1,45) c, byte 
       * 
  ERROR pada baris 2: 
  ORA-00923: FROM kata kunci tidak ditemukan di mana diharapkan 
  SQL> spool off 
  SQL>

ANALISIS:

Error ini bisa menyesatkan. DARI kata kunci tersebut ada, tapi Anda kehilangan kurung kiri antara substr dan FILE_NAME on line 2. Kesalahan ini juga dapat disebabkan oleh koma hilang di antara nama kolom dalam pernyataan SELECT. Jika kolom dalam laporan SELECT tidak diikuti dengan koma, prosesor query secara otomatis mencari kata kunci DARI. Pernyataan sebelumnya telah dikoreksi sebagai berikut:

SQL> pilih substr (tablespace_name, 1,15) suatu, 
    2 substr (FILE_NAME, 1,45) c, byte 
    3 dari sys.dba_data_files 
    4 order by tablespace_name;

Grup Fungsi Tidak Boleh Disini

INPUT:
  SQL> menghitung pilih (last_name), first_name, phone_number 
    2 dari employee_tbl 
    3 kelompok oleh count (last_name), first_name, phone_number 
    4 /
OUTPUT:
  kelompok dengan count (last_name), first_name, phone_number 
             * 
  ERROR pada baris 3: 
  ORA-00934: fungsi kelompok tidak diperkenankan di sini 
  SQL>
ANALISIS:

Berikut sintaks tidak benar. Kesalahan ini terjadi ketika Anda menghilangkan kata wajib dengan sintaks perintah yang diberikan. Jika Anda menggunakan bagian yang opsional perintah, opsi yang mungkin memerlukan kata kunci tertentu. Kata kunci hilang dalam contoh ini adalah sebagai. Pernyataan tersebut akan terlihat seperti ini:

  SQL> emp_view membuat tampilan sebagai 
    2 pilih * dari employee_tbl 
    3 / 

Hilang Waktu kurung

INPUT:
  SQL> @ insert.sql
OUTPUT:
  SQL> insert ke nilai-nilai people_tbl 
    2 '303785523 ',' SMITH ', "JOHN', 'Jay', 'PRIA', '10-JAN-50 ') 
    3 / 
       '303785523 ',' SMITH ',' JOHN ',' Jay ',' PRIA ', '10-JAN-50') 
       * 
    ERROR pada baris 2: 
    ORA-00906: kurung kiri hilang 
  SQL> 
ANALISIS:

Pada baris 2 kurung tidak muncul sebelum nomor Jaminan Sosial. Sintaks yang benar akan terlihat seperti ini:

 SQL> insert ke nilai-nilai people_tbl 2 ('303785523 ',' SMITH ',' JOHN ',' Jay ',' PRIA ', '10-JAN-50') 3 /

Hilang parenthesis kanan

INPUT:
  SQL> @ tblspc.sql
OUTPUT:
  SQL> spool tblspc.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> set PageSize 1000 
  SQL> pilih substr (tablespace_name, 1,15 a, 
    2 substr (FILE_NAME, 1,45) c, byte 
    3 dari sys.dba_data_files 
    4 order by tablespace_name; 
       pilih substr (tablespace_name, 1,15 a, 
                       * 
  ERROR pada baris 1: 
  ORA-00907: parenthesis kanan hilang 
  SQL> spool off 
  SQL> 
ANALISIS:

Di baris 1 tanda kurung yang benar hilang dari substr tersebut. Sintaks yang benar terlihat seperti ini:

  SQL> pilih substr (tablespace_name, 1,15) suatu, 
      2 substr (FILE_NAME, 1,45) c, byte 
      3 dari sys.dba_data_files 
      4 order by tablespace_name; 

Hilang Koma

INPUT:
  SQL> @ ezinsert.sql
OUTPUT:
 SQL> spool ezinsert.lst SQL> set echo on SQL> set memasukkan umpan balik pada> SQL kedalam nilai office_tbl 2 ('303785523 '' SMITH ',' KANTOR DARI NEGARA INDIANA, Ajudan Jenderal ') 3 / ('303785523' ' SMITH ',' KANTOR DARI NEGARA INDIANA, ') * Ajudan Jenderal ERROR pada baris 2: ORA-00917: SQL hilang koma> spool off SQL>
ANALISIS:

On line 2 koma yang hilang antara nomor Jaminan Sosial dan SMITH.

Kolom ambigu Ditetapkan

INPUT:
  SQL> @ employee_tbl
OUTPUT:
  SQL> spool employee.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> p.ssn pilih, nama, e.address, e.phone 
    2 dari employee_tbl e, 
    3 payroll_tbl p 
    4 mana e.ssn = p.ssn; 
       pilih p.ssn, nama, e.address, e.phone 
                 * 
  ERROR pada baris 1: 
  ORA-00918: Kolom ambigously didefinisikan 
  SQL> spool off 
  SQL> 
ANALISIS:

Di baris 1 kolom nama belum ditetapkan. Tabel telah diberi alias e dan p. Tentukan tabel untuk menarik nama dari dan menentukan dengan meja alias.

Perintah SQL Tidak Benar Berakhir

INPUT:
  SQL> emp_tbl membuat tampilan sebagai 
    2 pilih * dari employee_tbl 
    3 order by nama 
    4 /
OUTPUT:
  pesanan dengan nama 
       * 
  ERROR pada baris 3: 
  ORA-00933: Perintah SQL tidak benar berakhir 
  SQL> 
ANALISIS:

Mengapa perintah tidak benar berakhir? Anda tahu bahwa Anda dapat menggunakan / untuk mengakhiri pernyataan SQL. fooler lain. Sebuah klausa ORDER BY tidak dapat digunakan dalam pernyataan CREATE VIEW. Menggunakan GROUP BY sebagai gantinya. Berikut prosesor query adalah mencari terminator (koma atau garis miring) sebelum klausa ORDER BY karena prosesor ORDER BY menganggap bukan bagian dari pernyataan CREATE VIEW. Karena terminator tidak ditemukan sebelum BY ORDER, kesalahan ini dikembalikan bukan kesalahan menunjuk ke BY ORDER.

Ekspresi Hilang

INPUT:
  SQL> @ tables.sql
OUTPUT:
  SQL> spool tables.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> set PageSize 1000 
  SQL> pilih pemilik | | '. "  | | Tabel, 
    2 dari sys.dba_tables 
    3 di mana owner = 'SYSTEM' 
    4 order by table_name 
    5 / 
       dari sys.dba_tables 
      * 
  ERROR pada baris 2: 
  ORA-00936: ekspresi hilang 
  SQL> spool off 
  SQL> 
ANALISIS:

Perhatikan tabel koma setelah pada baris pertama, sehingga prosesor query adalah mencari kolom lain di klausa SELECT. Pada titik ini, prosesor tidak mengharapkan klausa FROM.

Argumen Tidak Cukup untuk Fungsi

INPUT:
  SQL> @ tblspc.sql
OUTPUT:
  SQL> spool tblspc.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> set PageSize 1000 
  SQL> pilih substr (tablespace_name, 1,15) suatu, 
    2 decode (substr (FILE_NAME, 1,45)) c, byte 
    3 dari sys.dba_data_files 
    4 order by tablespace_name; 
       decode (substr (FILE_NAME, 1,45)) c, byte 
            * 
  ERROR pada baris 2: 
  ORA-00938: tidak cukup argumen untuk fungsi 
  SQL> spool off 
  SQL> 
ANALISIS:

Tidak ada cukup argumen untuk fungsi deCODE. Periksa pelaksanaan Anda untuk sintaks yang tepat.

Tidak Cukup Nilai

INPUT:
  SQL> @ ezinsert.sql
OUTPUT:
  SQL> spool ezinsert.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> insert ke nilai-nilai employee_tbl 
    2 ('303785523 ',' SMITH ',' JOHN ',' Jay ',' PRIA ') 
    3 / 
       masukkan ke dalam nilai-nilai employee_tbl 
               * 
  ERROR pada baris 1: 
  ORA-00947: tidak cukup nilai-nilai 
  SQL> spool off 
  SQL> 
ANALISIS:

Nilai kolom yang hilang. Lakukan perintah DESCRIBE di atas meja untuk menemukan kolom hilang. Anda dapat memasukkan data tertentu hanya jika Anda daftar kolom yang akan dimasukkan ke dalam, seperti ditunjukkan pada contoh berikut:

INPUT:
  SQL> spool ezinsert.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> masukkan ke employee_tbl (SSN, last_name, first_name, mid_name, jenis kelamin) 
    2 nilai ('303785523 ',' SMITH ',' JOHN ',' Jay ',' PRIA ') 
    3 / 

Kendala Integritas Melanggar – Kunci Induk Tidak Ditemukan

INPUT:
  SQL> insert ke nilai-nilai payroll_tbl 
    2 ('111111111 ',' SMITH ',' JOHN ') 
    3 /
OUTPUT:
  masukkan ke dalam nilai-nilai payroll_tbl 
                      * 
  ERROR pada baris 1: 
  ORA-02291: kendala integritas (employee_cons) melanggar - induk 
  kunci tidak ditemukan 
  SQL> 
ANALISIS:

Kesalahan ini disebabkan dengan mencoba menyisipkan data ke dalam tabel tanpa data yang ada pada tabel induk. Periksa tabel induk untuk data yang benar. Jika hilang, maka Anda harus memasukkan data ke dalam tabel induk sebelum berusaha untuk menyisipkan data ke dalam tabel anak.

Oracle Tidak Tersedia

INPUT:
 ) / Home> sun_su3 (SQLPlus SQL * Plus: Release 3.2.3.0.0 - Produksi pada Sabtu 10 Mei 11:19:50 1997 Hak Cipta (c) 1979 Oracle, Corporation tahun 1994.  All rights reserved. Masukkan nama pengguna: rplew Masukkan sandi:
OUTPUT:
  ERROR: ORA-01034: ORACLE tidak tersedia 
  ORA-07318: smsget: error saat membuka file terbuka sgadef.dbf. 
ANALISIS:

Anda mencoba untuk login ke SQL * PLUS. Database mungkin bawah. Periksa status database. Juga, pastikan bahwa Anda mencoba untuk menyambung ke database yang benar jika Anda memiliki akses ke database multipel.

untuk Kolom Dimasukkan Nilai Terlalu Besar

INPUT:
  SQL> @ ezinsert.sql
OUTPUT:
  SQL> spool ezinsert.lst 
  SQL mengatur> echo pada 
  SQL> set umpan balik pada 
  SQL> insert ke nilai-nilai office_tbl 
    2 ('303785523 ',' SMITH ", 'OFFICE OF NEGARA INDIANA, Ajudan Jenderal') 
    3 / 
       masukkan ke dalam nilai-nilai office_tbl 
               * 
  ERROR pada baris 1: 
  ORA-01401: nilai dimasukkan terlalu besar untuk kolom 
  SQL> spool off 
  SQL> 
ANALISIS:

Salah satu nilai yang dimasukkan terlalu besar untuk kolom. Gunakan perintah DESCRIBE di meja untuk panjang data yang benar. Jika perlu, Anda dapat melakukan perintah ALTER TABLE di atas meja untuk memperluas lebar kolom.

TNS: pendengar Tidak Bisa Putuskan SID Mengingat di Connect Descriptor

INPUT:
  SQLDBA> rplew menghubungkan / xxxx @ database1
OUTPUT:
  ORA-12505: TNS: pendengar tidak dapat menyelesaikan SID diberikan dalam deskripsi menghubungkan 
  SQLDBA> putuskan 
  Terputus. 
  SQLDBA> 
ANALISIS:

Kesalahan ini sangat umum dalam database Oracle. pendengar sebagaimana dimaksud dalam kesalahan sebelumnya adalah proses yang memungkinkan permintaan dari klien untuk berkomunikasi dengan database di server jauh. Di sini Anda mencoba untuk menyambung ke database. Entah nama database yang salah diketik dalam atau pendengar sedang down. Periksa nama database dan coba lagi. Jika tidak berhasil, memberitahu administrator database masalah.

Kurangnya Keistimewaan Selama Hibah

INPUT:
  SQL> grant pilih pada people_tbl untuk ron;
OUTPUT:
  hibah pilih pada people_tbl untuk ron 
                                * 
  ERROR pada baris 1: 
  ORA-01749: Anda mungkin tidak / GRANT hak REVOKE ke / dari diri sendiri 
  SQL>
INPUT:
  SQL> grant pilih pada demo.employee untuk ron;
OUTPUT:
  hibah pilih pada demo.employee untuk ron 
                       * 
  ERROR pada baris 1: 
  ORA-01031: hak istimewa tidak cukup 
  SQL> 

Kesalahan ini terjadi jika Anda mencoba untuk memberikan hak istimewa pada meja pengguna lain dan Anda tidak memiliki hak istimewa yang tepat untuk melakukannya. Anda harus memiliki meja untuk dapat memberikan hak istimewa di atas meja kepada pengguna lain. Dalam Oracle Anda dapat diberikan hak istimewa dengan opsi Admin, yang berarti Anda bisa memberikan hak istimewa yang tercantum pada tabel pengguna lain untuk pengguna lain. Periksa pelaksanaan Anda untuk hak tertentu yang Anda butuhkan untuk memberikan hak istimewa.

Karakter Escape dalam Pernyataan Anda – Karakter tidak valid

Escape karakter sangat frustasi ketika mencoba untuk men-debug sebuah pernyataan SQL rusak. Hal ini dapat terjadi jika Anda menggunakan tombol backspace ketika Anda memasukkan pernyataan SQL Anda dalam buffer atau file. Kadang-kadang tombol backspace menempatkan sebuah karakter tidak valid dalam laporan tergantung pada bagaimana kunci Anda dipetakan, meskipun Anda mungkin tidak dapat melihat karakter.

Can’t Buat File Sistem Operasi

Kesalahan ini memiliki sejumlah penyebab. Yang paling umum penyebab adalah bahwa disk asosiasi tersebut penuh atau tidak benar perizinan telah ditetapkan pada sistem file. Jika disk penuh, Anda harus menghapus file yang tidak diinginkan. Jika izin tidak benar, mengubahnya ke pengaturan yang benar. Kesalahan ini lebih merupakan kesalahan sistem operasi, sehingga Anda mungkin perlu mendapatkan nasihat dari administrator sistem Anda.

Common Kesalahan Logis

Sejauh ini kita telah membahas kesalahan dalam pernyataan SQL yang menghasilkan pesan kesalahan yang sebenarnya. Sebagian besar kesalahan yang sudah jelas, dan resolusi mereka meninggalkan sedikit imajinasi. Kesalahan berikutnya lebih (atau kurang) logis, dan mereka dapat menyebabkan masalah di kemudian – jika tidak segera.

Menggunakan Reserved Kata-kata dalam pernyataan SQL Anda

INPUT:
  SQL> pilih sysdate DATE 
    2 dari dual;
OUTPUT:
  pilih sysdate DATE 
                 * 
  ERROR pada baris 1: 
  ORA-00923: FROM kata kunci tidak ditemukan di mana diharapkan 
ANALISIS:

Dalam contoh ini prosesor query tidak mengharapkan kata DATE karena merupakan kata reserved. Tidak ada koma setelah pseudocolumn yang SYSDATE, sehingga unsur berikutnya yang diharapkan adalah klausa FROM.

INPUT:
  SQL> sysdate pilih "DATE" 
    2 dari dual;
OUTPUT:
  DATE 
  -------- 
  15-MEI-97 
ANALISIS:

Perhatikan bagaimana kata masalah reserved adalah diringankan dengan melampirkan DATE kata dengan tanda kutip ganda. tanda kutip ganda memungkinkan Anda untuk menampilkan string literal DATE sebagai alias kolom.


CATATAN: Pastikan untuk memeriksa dokumentasi database tertentu Anda untuk mendapatkan daftar kata-kata cipta, sebagai kata-kata ini dilindungi undang-undang akan bervariasi antara implementasi yang berbeda.


Anda mungkin atau tidak mungkin harus menggunakan tanda kutip ganda ketika penamaan alias kolom. Pada contoh berikut, Anda tidak perlu menggunakan tanda kutip ganda karena HARI INIbukan kata reserved. Untuk memastikan, periksa pelaksanaan spesifik Anda.

INPUT:
  SQL> sysdate TODAY pilih 
    2 dari dual;
OUTPUT:
  HARI INI 
  -------- 
  15-MEI-97 
  SQL> 

Penggunaan berbeda bila Multiple Memilih Kolom

INPUT:
  SQL> pilih berbeda (kota), berbeda (zip) 
    2 dari address_tbl;
OUTPUT:
 pilih berbeda (kota), berbeda (zip) * ERROR di baris 1: ORA-00936: hilang ekspresi SQL>
ANALISIS:

Sebuah kota dapat memiliki lebih dari satu kode ZIP. Sebagai aturan, Anda harus menggunakan perintah yang berbeda pada hanya satu kolom yang dipilih.

Menjatuhkan suatu Tabel WTP

Setiap kali menghapus tabel, gunakan selalu pemilik atau skema. Anda dapat membuat dua nama tabel dalam database. Jika Anda tidak menggunakan pemilik / skema nama, maka meja salah bisa jatuh.

Sintaks berisiko untuk menghapus tabel:

Sintaks:
  SQL> drop tabel people_tbl; 

Pernyataan selanjutnya adalah jauh lebih aman karena menentukan pemilik tabel yang ingin Anda drop.

Sintaks:
  SQL> drop tabel ron.people_tbl; 

PERINGATAN: Kualifikasi meja ketika menjatuhkannya selalu merupakan praktek yang aman, meskipun kadang-kadang langkah ini mungkin tidak diperlukan. Pernah masalah perintah DROP TABLE tanpa terlebih dahulu memverifikasi user id yang Anda terhubung ke database.


Penggunaan Sinonim Publik dalam Database Multischema

Sinonim membuat hidup lebih mudah bagi pengguna, namun nama-muradif publik tabel terbuka bahwa Anda mungkin tidak ingin semua pengguna untuk melihat. Gunakan hati saat pemberian nama-muradif masyarakat khususnya di lingkungan multischema.

Para Cartesian Produk takut

INPUT:
  SQL> a.ssn pilih, p.last_n 
    2 dari address_tbl sebuah, 
    3 people_tbl p;
OUTPUT:
  SSN LAST_NAME 
  --------- --------------- 
  303785523 SMITH 
  313507927 SMITH 
  490552223 SMITH 
  312667771 SMITH 
  420001690 SMITH 
  303785523 JONES 
  313507927 JONES 
  490552223 JONES 
  312667771 JONES 
  420001690 JONES 
  303785523 Osborn 
  313507927 Osborn 
  490552223 Osborn 
  312667771 Osborn 
  420001690 Osborn 
  303785523 JONES 
  313507927 JONES 
  490552223 JONES 
  312667771 JONES 
  420001690 JONES 

  16 baris yang dipilih. 

Kesalahan ini disebabkan ketika Anda tidak bergabung dengan tabel di klausa WHERE. Perhatikan bagaimana banyak baris yang dipilih. Kedua tabel sebelumnya ada 4 baris, karena itu, kami ingin kembali bukannya 4 baris dari 16 baris yang kami terima. Tanpa menggunakan join pada klausa WHERE, setiap baris dalam tabel pertama adalah cocok dengan setiap baris pada urutan kedua.Untuk menghitung jumlah baris kembali, Anda akan beberapa 4 baris dengan 4 baris, yang menghasilkan 16. Sayangnya, sebagian besar tabel Anda akan berisi lebih dari 4 baris data, dengan beberapa mungkin melebihi ribuan atau jutaan baris. Dalam kasus-kasus ini tidak repot-repot melakukan perkalian tersebut, untuk permintaan Anda yakin untuk menjadi-away query dijalankan.

Kegagalan untuk Menerapkan Standar Input

Menjamin bahwa standar input yang dianut umumnya dikenal sebagai jaminan kualitas (QA). Tanpa pemeriksaan sering pada data yang dimasukkan oleh petugas data entri, Anda menjalankan resiko yang sangat tinggi dari hosting sampah dalam database Anda. Cara yang baik untuk terus menangani jaminan kualitas adalah untuk menciptakan QA beberapa laporan menggunakan SQL, lalu jalankan secara tepat waktu, dan sekarang output mereka kepada manajer entri data untuk tindakan yang tepat untuk memperbaiki kesalahan atau inkonsistensi data.

Kegagalan untuk Menerapkan File Struktur Sistem Konvensi

Anda dapat membuang banyak waktu ketika Anda bekerja dengan sistem file yang tidak standar. Periksa pelaksanaan Anda untuk struktur sistem berkas yang direkomendasikan.

Membiarkan Tabel Besar untuk Ambil Storage Default Parameter

penyimpanan parameter Default akan bervariasi dengan implementasi, tetapi mereka biasanya agak kecil. Ketika sebuah atau dinamis meja besar dibuat dan dipaksa untuk mengambil penyimpanan default, fragmentasi meja serius dapat terjadi, yang bisa sangat menghambat kinerja database. Baik perencanaan sebelum penciptaan tabel akan membantu untuk menghindari ini.Contoh berikut menggunakan pilihan penyimpanan parameter yang Oracle.

INPUT:
  SQL> membuat tabel test_tbl 
    2 (nomor SSN (9) bukan null, 
    3 Nama VARCHAR2 (30) bukan null) 
    4 penyimpanan 
    5 (100M tingkat awal 
    6 tingkat berikutnya 20m 
    7 minextents 1 
    8 maxextents 121 
    9 pctincrease 0); 

Menempatkan Objek pada Sistem Tablespace

Pernyataan berikut menunjukkan meja diciptakan pada tablespace SYSTEM. Meskipun pernyataan ini tidak akan kembali error, kemungkinan untuk menyebabkan masalah di masa depan.

INPUT:
  SQL> membuat tabel test_tbl 
    2 (nomor SSN (9) bukan null, 
    3 Nama VARCHAR2 (30) bukan null) 
    4 tablespace SYSTEM 
    5 penyimpanan 
    6 (100M tingkat awal 
    7 tingkat berikutnya 20m 
    8 minextents 1 
    9 maxextents 121 
    10 pctincrease 0); 

Contoh berikut memperbaiki masalah ini yang disebut:

INPUT:
  SQL> membuat tabel test_tbl 
    2 (nomor SSN (9) bukan null, 
    3 Nama VARCHAR2 (30) bukan null) 
    4 tablespace linda_ts 
    5 (100M tingkat awal 
    6 tingkat berikutnya 20m 
    7 minextents 1 
    8 maxextents 121 
    9 pctincrease 0); 
ANALISIS:

Dalam Oracle, yang tablespace SYSTEM biasanya digunakan untuk menyimpan objek yang dimiliki SISTEM, seperti penyusunan kamus data. Jika Anda kebetulan tempat tabel dinamis dalam tablespace ini dan mereka tumbuh, Anda menjalankan resiko merusak atau setidaknya mengisi ruang kosong, yang pada gilirannya mungkin akan menyebabkan database untuk kecelakaan.Dalam acara ini database mungkin terpaksa menjadi negara dipulihkan. Selalu simpan aplikasi dan tabel pengguna dalam tablespace yang ditunjuk secara terpisah.

Kegagalan untuk Compress File Cadangan Besar

Jika Anda melakukan ekspor yang besar dan tidak memampatkan file, Anda mungkin akan kehabisan ruang disk untuk menyimpan file. Selalu memampatkan file ekspor. Jika Anda menyimpan arsip file log pada hard disk daripada di pita, file-file ini dapat dan mungkin harus dikompresi untuk menghemat ruang.

Kegagalan Sistem Anggaran Resources

Anda harus selalu anggaran sumber daya sistem Anda sebelum Anda membuat database database. Hasil tidak sumber daya sistem penganggaran bisa berkinerja buruk. Anda harus selalu mengetahui apakah database yang akan digunakan untuk transaksi, pergudangan, atau permintaan saja. Fungsi database akan mempengaruhi jumlah dan ukuran segmen rollback. Jumlah pengguna database pasti akan mempengaruhi ukuran dari tablespace USERS dan TEMP. Apakah Anda memiliki cukup ruang untuk garis besar meja Anda? Tabel dan indeks harus disimpan pada perangkat terpisah untuk mengurangi disk contention. Anda harus menjaga Redo log dan tablespace data pada perangkat terpisah untuk meringankan contention disk. Ini hanya beberapa isu-isu untuk mengatasi ketika mempertimbangkan sumber daya sistem.

Mencegah Masalah dengan Data Anda

Pusat pengolahan data Anda harus memiliki sistem cadangan diatur. Jika database Anda kecil dan menengah, Anda dapat mengambil tindakan pencegahan ekstra menggunakan EKSPOR untuk memastikan bahwa data yang didukung. Anda harus membuat cadangan dari ekspor berkas dan menyimpannya di lokasi lain untuk keamanan lebih lanjut. Ingatlah bahwa file-file ini dapat menjadi besar dan akan memerlukan banyak ruang.

Mencari Duplicate Records pada Database Anda

Jika database Anda benar-benar direncanakan, Anda tidak harus memiliki masalah dengan duplikat catatan. Anda dapat menghindari duplikasi data dengan menggunakan kendala, kunci asing, dan indeks yang unik.

Ringkasan

Banyak jenis kesalahan – ratusan – dapat menghalangi Anda dan data Anda. Untungnya, kebanyakan kesalahan / kesalahan tidak bencana dan mudah untuk memperbaiki. Namun, beberapa kesalahan / kesalahan yang terjadi sangat serius. Anda perlu berhati-hati setiap kali Anda mencoba untuk memperbaiki kesalahan / kesalahan, karena kesalahan bisa kalikan jika Anda tidak menggali akar masalah. Ketika Anda melakukan membuat kesalahan, karena Anda pasti akan, menggunakannya sebagai pengalaman pembelajaran.


TIP: Kami lebih memilih untuk mendokumentasikan segala sesuatu yang berkaitan dengan kesalahan database, terutama kesalahan jarang terjadi bahwa kita tersandung atas. Suatu berkas dengan kesalahan adalah sebuah referensi Mengatasi masalah yang tak ternilai.


Sumber ; http://www.webbasedprogramming.com

Older Entries