Konsep desain bagian II
- Model database relasional
- Hubungan entitas (ER) pemodelan
- Pemodelan data tingkat lanjut
- Normalisasi tabel database
Bisnis Vignette : BP Data Modeling InitiativeBritish Petroleum adalah salah satu perusahaan energi terbesar di dunia, bergerak di bidang bahan bakareksplorasi dan produksi di 29 negara dan aktif mengembangkan energi alternatifsumber seperti energi matahari dan angin dan biofuel . Dalam besar ini , perusahaan yang beragam ,manajemen desentralisasi dan pengeluaran pembangunan dan infrastruktur TI memilikihistoris proyek -driven . Akibatnya , Teknologi Informasi BP dan Jasa( IT & S ) Divisi tidak dapat menerapkan seragam standar IT dan platform seluruhperusahaan . Perusahaan telah mengadopsi lebih dari 5.000 aplikasi perangkat lunak .Struktur Perusahaan desentralisasi sangat dipengaruhi pengembangan database . masing-masingData proyek yang dibuat sendiri sejauh models.The dan pendekatan untuk pemodelan data berbedadengan masing-masing proyek . Manajer proyek menggunakan berbagai macam alat pemodelan data , termasukSistem Arsitektur , ERWin , ARIS , Enterprise Architecture , Visio , dan bahkan PowerPoint .Selain itu , tidak ada repositori pusat di mana model dan definisi data bisadisimpan . Setelah proyek selesai , model ini sering hilang . Jadi , BP menderitadari definisi yang tidak konsisten data, duplikasi data, dan masalah kualitas .Pada tahun 2003 , BP memutuskan untuk mengubah semua itu . Perusahaan menetapkan tujuan untuk mengelola data danInformasi " sebagai aset perusahaan bersama yang mudah diakses . " Ini menciptakan EnterpriseTim Arsitektur untuk mengidentifikasi standar TI umum. Pada akhir tahun 2005 , tim harusmelakukan studi pemodelan data cross - perusahaan dan membuat daftar disepakatiIde requirements.The adalah mendirikan " pemodelan data sebagai layanan " untuk semua unit bisnis .Fungsi dari tim Arsitektur Enterprise tidak akan menegakkan standar danprosedur , tetapi untuk melatih , mendukung , dan menyediakan sumber daya .Karena pengguna potensial yang berlokasi di seluruh dunia , tim memutuskan untuk membangun sebuah data yangPortal pemodelan yang akan rumah semua data pemodelan sumber terkait: standar danpedoman , papan diskusi , pendaftaran untuk pelatihan , dan repositori model data yang besardimana model data yang secara otomatis upload dan berbagi . Untuk mendukung upaya ini , BPmengadopsi alat pemodelan data tunggal , ER / Studio . Pengguna bisa bekerja di ER / Studio danModel data secara otomatis akan dipublikasikan ke Microsoft SharePoint . Pada tahun 2009,repositori berisi 235 model untuk lebih dari 50.000 entitas .Tanggapan dari pengguna telah sangat positif . Sebuah survei terbaru menemukan bahwa hampir semuapengguna setuju bahwa mereka mendapatkan manfaat dari penggunaan alat pemodelan umum , yang umumrepositori , dan umum standar dan pedoman . Selain itu, jumlah karyawanmenggunakan portal meningkat . Kedua indikator sangat menyarankan bahwa " Data BPmodeling sebagai " strategi pelayanan adalah mengatasi kelemahan yang diciptakan oleh kebijakan-kebijakan dari pengelolaan yang terdesentralisasi dan adopsi sukarela.
3. Model database relasionalDalam bab ini, Anda akan mempelajari:
- Bahwa model database relasional menawarkan pandangan logis data
- Tentang model relasional komponen dasar: hubungan
-Bahwa hubungan merupakan konstruksi logis terdiri dari baris (tuple) dan kolom (atribut)
-Bahwa hubungan diimplementasikan sebagai tabel dalam DBMS relasional
- Tentang operator relasional database, kamus data, dan sistem katalog
- Bagaimana redundansi data ditangani dalam model database relasional
- Mengapa pengindeksan penting
Dalam Bab 2 , Model Data, Anda belajar bahwa model data relasional yang data struktur dankemerdekaan memungkinkan Anda untuk memeriksa struktur logis model tanpa mempertimbangkanaspek fisik penyimpanan data dan pengambilan . Anda juga belajar bahwa hubungan entitasdiagram ( ERD ) dapat digunakan untuk menggambarkan entitas dan relasinya grafis . dalam hal inibab , Anda akan belajar beberapa rincian penting tentang struktur logis model relasional yangdan lebih lanjut tentang bagaimana ERD dapat digunakan untuk merancang sebuah database relasional .Anda juga akan belajar bagaimana komponen data dasar database relasional yang cocok menjadi logismembangun dikenal sebagai table.You akan menemukan bahwa salah satu alasan penting bagi relasionalkesederhanaan model database adalah bahwa tabel yang dapat diperlakukan sebagai logis daripada fisikunits.You juga akan belajar bagaimana tabel independen dalam database dapat berhubungan dengansatu sama lain .Setelah belajar tentang tabel , komponen mereka , dan hubungan mereka , Anda akan diperkenalkankonsep-konsep dasar yang membentuk desain tabel . Karena tabel adalah seperti terpisahkanbagian dari desain database relasional , Anda juga akan mempelajari karakteristik dirancang dengan baik danburuk dirancang tabel .Akhirnya, Anda akan diperkenalkan dengan beberapa konsep dasar yang akan menjadi gateway kebeberapa bab berikutnya . Misalnya, Anda akan meneliti berbagai jenis hubungan dancara hubungan tersebut mungkin ditangani dalam lingkungan database relasional .
catatanModel relasional , diperkenalkan byE.F. Codd in1970 , didasarkan pada logika predikat dan mengatur logika theory.Predicate ,digunakan
secara luas inmathematics , menyediakan sebuah kerangka di mana sebuah
pernyataan ( pernyataan fakta ) dapat diverifikasi sebagaibaik contoh benar atau false.For , misalkan seorang siswa dengan siswa IDof12345678is namedMelissaSanduski .Penegasan ini dapat dengan mudah dibuktikan theoryis benar atau false.Set ilmu matematika yang berhubungan denganset , atau kelompok benda , dan digunakan sebagai dasar untuk manipulasi data dalam model relasional . Sebagai contoh,berasumsi bahwa setAcontains tiga nomor : 16,24 , And77 . Set ini diwakili Asa ( 16,24,77 ) . Selanjutnya ,setBcontains empat angka : 44,77,90 , and11 , dan sebagainya diwakili ASB ( 44,77,90,11 ) Dengan informasi ini , .Anda dapat menyimpulkan bahwa persimpangan ofAandByields hasil set dengan satu nomor , 77 . Hasil ini dapatmenyatakan Asa ? B = 77 . Dengan kata lain , AandBshare nilai umum , 77 .Berdasarkan konsep-konsep , model relasional memiliki tiga komponen yang jelas :1 . Struktur data Alogical diwakili oleh hubungan ( Sections3.1 , 3,2 , and3.5 ) .2 . Aset aturan integritas untuk menegakkan bahwa data tersebut dan tetap konsisten dari waktu ke waktu ( Sections3.3 , 3.6 , 3.7 ,and3.8 ) .3 . Aset operasi yang mendefinisikan bagaimana data dimanipulasi ( Section3.4 ) .
3.1 VIEW LOGIS DATADalam Bab 1 , Sistem Database, Anda belajar bahwa database menyimpan dan mengelola data dan metadata . Anda jugabelajar bahwa DBMS mengelola dan mengontrol akses ke data dan struktur database . Seperti pengaturan -menempatkan DBMS antara aplikasi dan database - menghilangkan sebagian besar keterbatasan file sistem .Hasil
fleksibilitas seperti itu, bagaimanapun , adalah fakta structure.In
fisik jauh lebih kompleks , struktur database yang diperlukanbaik oleh hirarki dan model jaringan database sering menjadi cukup rumit untuk mengurangi database yang efisiendesain . Model data relasional mengubah semua itu dengan memungkinkan desainer untuk fokus pada representasi logisdari data dan hubungan , bukan pada rincian penyimpanan fisik . Untuk menggunakan analogi otomotif,database relasional menggunakan transmisi otomatis untuk membebaskan Anda dari kebutuhan untuk memanipulasi pedal kopling dangearshifts . Singkatnya , model relasional memungkinkan Anda untuk melihat data yang logicallyrather daripada fisik .Signifikansi praktis mengambil pandangan logis adalah bahwa ia berfungsi sebagai pengingat dari konsep file sederhana datastorage.Although
penggunaan tabel , cukup tidak seperti itu dari sebuah file , memiliki
keuntungan dari kebebasan struktural dan data ,tabel tidak menyerupai file dari sudut pandang konseptual . Karena Anda bisa memikirkan catatan terkait sebagai disimpandalam tabel independen, model database relasional jauh lebih mudah dipahami ketimbang hierarkis dan jaringanmodel . Kesederhanaan logis cenderung menghasilkan metodologi desain database sederhana dan efektif .Karena meja memainkan peran penting dalam model relasional , layak melihat lebih dekat . Oleh karena itu , kamiDiskusi dimulai dengan eksplorasi rincian struktur tabel dan isinya .3.1.1 Tabel dan Karakteristik merekaLogis pandangan database relasional difasilitasi oleh terciptanya hubungan data berdasarkan membangun logisdikenal
sebagai relation.Because relasi adalah membangun matematika , pengguna
akhir merasa jauh lebih mudah untuk memikirkan relasisebagai meja . Sebuah tabel dianggap sebagai struktur dua dimensi terdiri dari baris dan kolom . Sebuah tabel disebut jugaarelationbecause pencipta model relasional itu , EF Codd , menggunakan termrelationas sinonim untuk tabel . Anda dapatmemikirkan meja sebagai persistentrepresentation dari hubungan logis, yaitu, hubungan yang isinya dapatpermanen disimpan untuk digunakan di masa depan . Sejauh pengguna tabel yang bersangkutan , meja berisi entitas groupofrelatedkejadian , yaitu, sebuah himpunan entitas . Sebagai contoh, sebuah tabel STUDENT berisi kumpulan kejadian entitas , masing-masingmewakili mahasiswa . Untuk alasan itu, setandtable termsentity sering digunakan secara bergantian .
++++
primary key yang baik karena itu adalah mungkin untuk menemukan beberapa siswa yang nama terakhir adalah Smith . bahkankombinasi nama belakang dan nama depan ( STU_FNAME ) tidak akan menjadi primary key tepat karena ,seperti Gambar 3.1 menunjukkan , sangat mungkin untuk menemukan lebih dari satu siswa bernama John Smith .3.2 KEYSDalam
model relasional , kunci penting karena mereka digunakan untuk
memastikan bahwa setiap baris dalam sebuah tabel secara unikdiidentifikasi . Mereka juga digunakan untuk membangun hubungan antara tabel dan untuk menjamin integritas data .Oleh karena itu , pemahaman yang tepat tentang konsep dan penggunaan kunci dalam model relasional sangat penting . Akeyterdiri dari satu atau lebih atribut yang menentukan atribut lainnya . Misalnya , nomor faktur mengidentifikasi semuaatribut faktur , seperti tanggal invoice dan nama pelanggan .Salah satu jenis kunci, kunci utama , telah diperkenalkan . Mengingat struktur tabel STUDENT ditunjukkan padaGambar 3.1 , mendefinisikan dan menggambarkan kunci utama tampaknya cukup.Namun sederhana, karena kunci utama memainkan sepertiperan penting dalam lingkungan relasional , Anda akan meneliti sifat kunci primer yang lebih hati-hati . dalam hal inibagian , Anda juga akan berkenalan dengan superkeys , kunci kandidat , dan kunci sekunder .Peran kunci ini didasarkan pada konsep yang dikenal asdetermination . Dalam konteks tabel database , pernyataan " Amenentukan B " menunjukkan bahwa jika Anda tahu nilai atribut A , Anda dapat mencari ( menentukan ) nilai atributB. Misalnya, mengetahui STU_NUM dalam tabel STUDENT ( lihat Gambar 3.1 ) berarti bahwa Anda dapat mencari( menentukan ) bahwa nama siswa lalu, nilai rata-rata , nomor telepon , dan sebagainya. The singkatan notasi untuk " Amenentukan B " adalah A → B. Jika A menentukan B , C , dan D , Anda menulis A → B , C , D. Oleh karena itu , dengan menggunakan atributTabel STUDENT pada Gambar 3.1 , Anda dapat mewakili pernyataan " STU_NUM menentukan STU_LNAME " dengan menulis :STU_NUM → STU_LNAMEBahkan , nilai STU_NUM dalam tabel STUDENT menentukan semua nilai atribut siswa . Misalnya, Andadapat menulis :STU_NUM → STU_LNAME , STU_FNAME , STU_INITdanSTU_NUM → STU_LNAME , STU_FNAME , STU_INIT , STU_DOB , STU_TRANSFERSebaliknya , STU_NUMis tidak ditentukan oleh STU_LNAME karena sangat mungkin bagi beberapa siswa untuk memilikinama terakhir Smith .Prinsip penentuan sangat penting karena digunakan dalam definisi database relasional pusatkonsep yang dikenal sebagai fungsional dependencecan termfunctional dependence.The didefinisikan paling mudah dengan cara ini:atribut B secara fungsional tergantung pada A jika A menentukan B. Lebih tepatnya :Atribut B secara fungsional tergantung pada atribut A jika setiap nilai dalam kolom A menentukansatu-satunya onevalue di kolom B.Menggunakan isi dari tabel STUDENT pada Gambar 3.1 , adalah tepat untuk mengatakan STU_PHONE yang fungsionaltergantung pada STU_NUM.For contoh, nilai STU_NUM 321.452 menentukan nilai 2134.On STU_PHONEsisi lain , STU_NUM tidak fungsional tergantung pada STU_PHONE karena nilai STU_PHONE 2267 adalahterkait dengan dua nilai STU_NUM : . 324.274 dan 324.291 ( Hal ini bisa terjadi ketika teman sekamar berbagi lahan tunggalnomor telepon line. ) Demikian pula , nilai STU_NUM 324.273 menentukan nilai STU_LNAME Smith . tapiNilai STU_NUM tidak fungsional tergantung pada STU_LNAME karena lebih dari satu siswa mungkin memiliki terakhirnama Smith .
dan itu terjadi sebagai kunci asing dalam tabel PRODUK .Karena tabel VENDOR tidak terkait dengan meja ketiga,Tabel VENDOR ditunjukkan pada Gambar 3.2 tidak berisikunci asing .Jika foreign key mengandung baik nilai cocok atau nulls ,tabel yang menggunakan bahwa kunci asing dikatakan menunjukkanintegritas referensial . Dengan kata lain , integritas referensialberarti bahwa jika foreign key berisi nilai , nilai tersebutmengacu pada tupel yang valid ada ( baris) dalam kaitannya lain.Perhatikan bahwa integritas referensial dipertahankan antaraPRODUK VENDOR dan tabel ditunjukkan pada Gambar 3.2 .Akhirnya , keyis asecondary didefinisikan sebagai kunci yang digunakan hanya untuk tujuan pengambilan data . Misalkan data pelanggandisimpan dalam tabel PELANGGAN di mana jumlah pelanggan adalah kunci utama . Apakah kamu mengira bahwa kebanyakanpelanggan akan mengingat jumlah mereka ? Pengambilan data bagi pelanggan dapat difasilitasi ketika nama terakhir pelanggandan nomor telepon yang digunakan . Dalam hal ini, kunci utama adalah nomor pelanggan , kunci sekunder adalahkombinasi nama terakhir pelanggan dan nomor telepon . Perlu diingat bahwa kunci sekunder tidak selalumenghasilkan hasil yang unik . Sebagai contoh, nama terakhir pelanggan dan nomor telepon rumah bisa dengan mudah menghasilkan beberapapertandingan di mana satu keluarga tinggal bersama-sama dan berbagi saluran telepon . Sebuah kunci sekunder kurang efisien akan menjadikombinasi nama terakhir dan kode pos , ini bisa menghasilkan puluhan pertandingan , yang kemudian bisa disisir untukpertandingan tertentu.Efektivitas Kunci sekunder dalam mempersempit pencarian tergantung pada seberapa ketat bahwa kunci sekunder . untukMisalnya , meskipun CUS_CITY kunci sekunder adalah sah dari sudut pandang database , atribut nilai " BaruYork
" atau" Sydney " tidak mungkin untuk menghasilkan pengembalian yang
dapat digunakan kecuali jika Anda ingin memeriksa jutaan mungkin cocok .(Tentu saja , CUS_CITY adalah kunci sekunder lebih baik daripada CUS_COUNTRY . )Tabel 3.3 merangkum berbagai tombol tabel database relasional .
TABEL3.3DatabaseKeys RelationalKEYTYPE DEFINISISuperkey Anattribute ( atau kombinasi atribut ) yang secara unik mengidentifikasi setiap baris dalam sebuah tabel .Calon kunci Aminimal ( tereduksi ) superkey.Asuperkey yang tidak mengandung subset dari atributyang sendiri superkey .Tombol
Acandidate kunci utama yang dipilih untuk secara unik mengidentifikasi
semua nilai atribut lain dalam baris yang diberikan .Tidak dapat berisi entri null.Kunci Sekunder Sebuah atribut ( atau kombinasi atribut ) digunakan hanya untuk tujuan pengambilan data .Foreign key Sebuah atribut ( atau kombinasi atribut ) dalam satu tabel yang nilainya harus baik sesuai denganprimary key pada tabel lain atau batal .3.3 ATURAN INTEGRITASAturan integritas database relasional sangat penting untuk desain database yang baik . Banyak ( tetapi tidak berarti semua ) RDBMSsmenegakkan aturan integritas otomatis . Namun, jauh lebih aman untuk memastikan bahwa desain aplikasi Anda sesuai denganaturan integritas entitas dan referensial yang disebutkan dalam bab ini . Aturan-aturan dirangkum dalam Tabel 3.4 .GAMBAR3.3Diagram relasional untukdatabase Ch03_SaleCo66 BAB 3TABEL3.4Aturan integritasKETERANGAN ENTITYINTEGRITYKebutuhan Semua entri primary key yang unik , dan tidak ada bagian dari primary key mungkinmenjadi nol .Tujuan Setiap baris akan memiliki identitas yang unik , dan nilai-nilai kunci asing dapat benarnilai kunci primer referensi .Contoh ada faktur dapat memiliki sejumlah duplikat , juga tidak dapat menjadi nol . Singkatnya , semuafaktur secara unik diidentifikasi dengan nomor faktur mereka.REFERENSI INTEGRITAS KETERANGANPersyaratan utama aforeign mungkin memiliki sebuah entri nol , asalkan bukan merupakan bagian dari perusahaanprimary key table , atau entri yang cocok dengan nilai kunci primer dalamtabel untuk yang terkait . ( Setiap non-null valuemustrefer - ence anexistingprimary nilai kunci asing kunci. )Tujuan Hal ini dimungkinkan untuk suatu atribut untuk tidak memiliki nilai yang sesuai , tetapi akanmungkin untuk memiliki entri yang tidak valid . The penegakan referensialaturan
integritas membuat tidak mungkin untuk menghapus baris dalam satu tabel
yang kunci primer memiliki pencocokan nilai-nilai kunci asing wajib
dalam tabel lain .Contoh Acustomer mungkin belum memiliki ditugaskan perwakilan penjualan ( nomor ) ,tetapi tidak mungkin untuk memiliki perwakilan penjualan tidak valid ( nomor ) .Aturan integritas yang diringkas dalam Tabel 3.4 diilustrasikan pada Gambar 3.4 .Perhatikan fitur berikut Gambar 3.4 .1 . Primer entitas PELANGGAN meja integrity.The ini kunci CUS_CODE.The kolom primary key PELANGGANtidak memiliki entri nol , dan semua entri unique.Similarly , utama AGEN key table bersifat AGENT_CODE , dankolom ini kunci utama juga bebas dari entri null.2 . Integritas referensial . Tabel PELANGGAN berisi kunci asing , AGENT_CODE , yang menghubungkan entri dalamtabel PELANGGAN ke AGEN meja.Kolam CUS_CODE baris yang diidentifikasi dengan jumlah ( primary key )Nama tabel : PELANGGANPrimary key : CUS_CODEForeign key : AGENT_CODENama Database: Ch03_InsureCoGAMBAR3.4Sebuah ilustrasi dari aturan integritasNama tabel : AGENPrimary key : AGENT_CODEForeign key : none67 THE RELASIONAL MODEL DATABASE10013 berisi entri nol dalam kunci asing AGENT_CODE karena Mr Paul F. Olowski belum memilikiperwakilan penjualan ditugaskan kepadanya . Entri AGENT_CODE tersisa dalam tabel PELANGGAN semuacocok dengan entri AGENT_CODE dalam tabel AGENT .Untuk
menghindari nulls , beberapa desainer menggunakan kode-kode khusus ,
asflags diketahui, untuk menunjukkan adanya beberapa nilai . menggunakanGambar 3.4 sebagai contoh , kode - 99 dapat digunakan sebagai entri AGENT_CODE dari baris keempatTabel PELANGGAN untuk menunjukkan bahwa pelanggan Paul Olowski belum memiliki agen yang ditugaskan kepadanya . Jika bendera tersebutdigunakan , tabel AGEN harus berisi baris boneka dengan nilai AGENT_CODE dari - 99 . Dengan demikian , tabel AGEN iniCatatan pertama mungkin berisi nilai-nilai yang ditunjukkan pada Tabel 3.5 .TABEL3.5Sebuah Nilai Variabel Dummy Digunakan sebagai BenderaAGENT_CODE AGENT_AREACODE AGENT_PHONE AGENT_LNAME AGENT_YTD_SALES-99 000 000-0000 ada $ 0,00Chapter4 , Entity Relationship ( ER ) Modeling , membahas beberapa cara di mana nulls dapat ditangani .Aturan integritas lain yang dapat ditegakkan dalam model relasional theNOTNULLandUNIQUEconstraints . ituTIDAK
kendala NULL dapat ditempatkan pada kolom untuk memastikan bahwa setiap
baris dalam tabel memiliki nilai untuk kolom tersebut .The UNIK kendala adalah pembatasan ditempatkan pada kolom untuk memastikan bahwa tidak ada nilai ganda ada untuk kolom tersebut.3,4 OPERATOR RELASIONAL SETData dalam tabel relasional adalah nilai terbatas kecuali data dapat dimanipulasi untuk menghasilkan informasi.Hal bergunaBagian menggambarkan kemampuan manipulasi data dasar dari model relasional . Relational algebradefines yangcara teoritis memanipulasi isi tabel dengan menggunakan delapan operator relasional : SELECT , PROJECT , JOIN,INTERSECT , UNION , PERBEDAAN , PRODUK , dan KESENJANGAN . Dalam Bab 7 , Pengantar Query TerstrukturLanguage ( SQL ) , dan Bab 8 , Advanced SQL , Anda akan belajar bagaimana perintah SQL dapat digunakan untuk mencapaioperasi aljabar relasional .Operator relasional memiliki ofclosure properti , yaitu , penggunaan operator aljabar relasional yang sudah adahubungan ( tabel ) menghasilkan hubungan baru. Tidak perlu untuk memeriksa definisi matematika , sifat , dankarakteristik dari operator aljabar relasional . Namun , theirusecan dengan mudah digambarkan sebagai berikut :1 . SELECT
, juga dikenal sebagai MEMBATASI , nilai hasil panen untuk semua baris
ditemukan dalam tabel yang memenuhi kondisi tertentu .SELECT
dapat digunakan untuk daftar semua nilai kolom , atau dapat
menghasilkan hanya nilai-nilai baris yang cocok dengan yang ditentukankriteria . Dengan kata lain , SELECT hasil subset horizontal meja . Efek dari SELECT ditunjukkan dalamGambar 3.5 .2 . PROYEK menghasilkan semua nilai untuk atribut yang dipilih . Dengan kata lain , PROYEK menghasilkan subset vertikal meja .Pengaruh PROYEK yang ditunjukkan pada Gambar 3.6 .catatanTingkat kelengkapan relasional dapat didefinisikan oleh sejauh mana aljabar relasional didukung . untukmenjadi consideredminimally relasional , dukungan DBMSmust yang operatorsSELECT relasional kunci, PROYEK , danJOIN. Sangat sedikit DBMS mampu mendukung semua delapan operator relasional .68 BAB 33 . UNION menggabungkan semua baris dari dua tabel , termasuk duplikasi baris . Tabel harus memiliki atribut yang samakarakteristik ( kolom dan domain harus sesuai ) untuk digunakan dalam UNION . Ketika dua atau lebihtabel berbagi jumlah kolom yang sama , dan ketika kolom yang sesuai mereka berbagi sama (ataukompatibel ) domain , mereka dikatakan beunion - kompatibel . Pengaruh UNION ditunjukkan pada Gambar 3.7 .4 . INTERSECT hanya menghasilkan baris yang muncul di kedua tables.As benar dalam kasus UNION , tabel harusmenjadi serikat - kompatibel untuk menghasilkan hasil yang valid . Misalnya, Anda tidak dapat menggunakan INTERSECT jika salah satu atribut yangnumerik dan satu adalah berbasis karakter . Efek dari INTERSECT ditunjukkan pada Gambar 3.8 .Asli meja meja BaruPILIH SEMUA hasilSELECT hanya HARGA kurang dari $ 2,00 hasilSELECT hanya P_CODE = 311452yieldsGAMBAR3.5SELECTAsli meja meja BaruHasil HARGA PROYEKPROYEK hasil P_DESCRIPT dan HARGAP_CODE PROYEK dan hasil HARGAGAMBAR3.6PROYEK69 THE RELASIONAL MODEL DATABASE5 . PERBEDAAN menghasilkan semua baris dalam satu tabel yang tidak ditemukan dalam tabel lainnya , yaitu mengurangkan satu mejadari yang lain . Seperti yang benar dalam kasus UNION , tabel harus serikat - kompatibel untuk menghasilkan hasil yang valid .Pengaruh PERBEDAAN yang ditunjukkan pada Gambar 3.9 . Namun, perhatikan bahwa mengurangi tabel pertama dariTabel kedua adalah tidak sama dengan mengurangkan tabel kedua dari meja pertama .6 . PRODUK menghasilkan semua kemungkinan pasangan baris dari dua tabel - juga dikenal sebagai Cartesian product.Therefore ,jika satu meja memiliki enam baris dan meja lain memiliki tiga baris , PRODUK yang menghasilkan daftar terdiri dari 6 × 3= 18 baris . Pengaruh PRODUK yang ditunjukkan pada Gambar 3.10 .7 . BERGABUNG memungkinkan informasi untuk digabungkan dari dua atau lebih tables.JOIN adalah kekuatan nyata di balik relasionalDatabase , memungkinkan penggunaan tabel independen dihubungkan oleh atribut umum . NASABAH dan AGENtabel pada Gambar 3.11 akan digunakan untuk menggambarkan beberapa jenis bergabung .hasil UNIONGAMBAR3.7UNIONINTERSECT hasilGAMBAR3.8INTERSECThasil PERBEDAANGAMBAR3.9PERBEDAAN70 BAB 3Anatural joinlinks tabel dengan memilih hanya baris dengan nilai-nilai umum dalam atribut umum mereka ( s ) . Aalami bergabung adalah hasil dari proses tiga tahap :a . Pertama, PRODUK dari tabel dibuat, menghasilkan hasil yang ditunjukkan pada Gambar 3.12 .b . Kedua , SELECT dilakukan pada output Langkah untuk menghasilkan hanya baris dimanaNilai AGENT_CODE adalah kolom umum equal.The disebut sebagai thejoin b hasil columns.Stephasil yang ditunjukkan pada Gambar 3.13 .c . PROYEK dilakukan pada hasil Langkah b untuk menghasilkan satu salinan setiap atribut , sehinggamenghilangkan duplikat kolom . Langkah c menghasilkan output yang ditunjukkan pada Gambar 3.14 .Hasil akhir dari natural join menghasilkan tabel yang tidak termasuk pasangan yang tak tertandingi dan hanya menyediakan salinandari pertandingan .Perhatikan beberapa fitur penting beberapa operasi natural join :? Jika tidak cocok dibuat antara baris tabel , tabel baru tidak termasuk baris tertandingi . Dalam hal ini,tidak AGENT_CODE 421 maupun pelanggan yang nama terakhir adalah Smithson disertakan . Smithson yangAGENT_CODE 421 tidak cocok dengan entri dalam tabel AGENT .? Kolom yang bergabung adalah dibuat -yaitu , AGENT_CODE - terjadi hanya sekali dalam tabel baru .? Jika AGENT_CODE yang sama yang terjadi beberapa kali dalam tabel AGEN , pelanggan akan terdaftar untuksetiap pertandingan . Misalnya, jika AGENT_CODE 167 itu terjadi tiga kali dalam tabel AGEN , yangpelanggan bernama Rakowski , yang dikaitkan dengan AGENT_CODE 167 , akan terjadi tiga kali dalamhasil PRODUKGAMBAR3.10PRODUKNama tabel : Nama Tabel CUSTOMER : AGENGAMBAR3.11Dua tabel yang akan digunakan dalam bergabung ilustrasi71 THE RELASIONAL MODEL DATABASEdihasilkan tabel . ( Sebuah meja AGEN baiktidak bisa , tentu saja , menghasilkan hasil tersebutkarena akan mengandung pri - mary nilai-nilai kunci yang unik . )Bentuk lain dari bergabung , dikenal asequijoin , linktabel berdasarkan kondisi kesetaraan yangmembandingkan kolom yang ditentukan masing-masing meja . ituhasil equijoin tidak menghilangkanduplikat kolom , dan kondisi atau crite - rion digunakan untuk bergabung dengan tabel harus secara eksplisitdidefinisikan . Equijoin ini mengambil namanya dari operator perbandingan kesetaraan ( = ) digunakan dalam kondisi tersebut. Jika yang lainOperator perbandingan digunakan , join disebut atheta bergabung.Setiap
sebelumnya bergabung sering digolongkan sebagai join.Aninner batin
joinis join yang hanya mengembalikan catatan-catatan pencocokandari tabel yang sedang bergabung . Dalam outer join , pasangan yang cocok akan dipertahankan , dan setiap tertandinginilai-nilai dalam tabel lain akan nol kiri. Ini adalah kesalahan yang mudah untuk berpikir bahwa outer join adalah kebalikan dariGAMBAR3.12Natural join , Langkah 1 : PRODUKGAMBAR3.13Alam bergabung , Langkah 2 : SELECTGAMBAR3.14Natural bergabung , Langkah 3 : PROYEK72 BAB 3inner join . Namun, itu lebih akurat untuk memikirkan bergabung luar sebagai " inner join plus. " The outer join masih kembalisemua catatan cocok bahwa inner join kembali , ditambah ia mengembalikan catatan yang tak tertandingi dari salah satu meja .Lebih khusus lagi , jika outer join diproduksi untuk tabel PELANGGAN dan AGEN , dua skenario yang mungkin :Hasil luar bergabung Aleft semua baris dalam tabel PELANGGAN , termasuk mereka yang tidak memiliki nilai pencocokandalam tabel AGENT . Sebuah contoh dari join seperti ditunjukkan pada Gambar 3.15 .Joinyields luar benar semua barisdalam tabel AGEN , termasuk yangyang tidak ada pencocokan nilai dalamPELANGGAN table.An contoh darijoin ditunjukkan pada Gambar 3.16 .Secara umum, luar bergabung beroperasiseperti equijoins . The luar bergabung tidakmenjatuhkan satu salinan atribut umum ,dan memerlukan spesifikasi daribergabung kondisi . Angka 3.15 dan 3.16menggambarkan hasil luar bergabung setelahPROYEK operasi relasional diterapkankepada mereka untuk secara manual menghapus kolom duplikat .Luar bergabung terutama berguna ketikaAnda mencoba untuk menentukan apa val - ue ( s ) dalam terkait penyebab tabel ( s ) referensialmasalah integritas . Masalah seperti inidibuat ketika nilai-nilai kunci asing tidaksesuai dengan nilai-nilai kunci utama dalamtabel terkait ( s ) . Bahkan , jika Anda dimintauntuk mengkonversi spreadsheet besar atau lainnyaData nondatabase ke dalam tabel database relasional , Anda akan menemukan bahwa terluar bergabung menghemat sejumlah besarwaktu dan terhitung sakit kepala ketika Anda menjumpai kesalahan integritas referensial setelah konversi .Anda mungkin bertanya-tanya mengapa luar bergabung adalah label labeledleftandright.The mengacu pada urutan di mana tabeltercantum dalam perintah SQL . Bab 8 mengeksplorasi tersebut bergabung secara lebih rinci .8 . Operasi KESENJANGAN menggunakan satu meja -kolom tunggal (misalnya , kolom " a " ) sebagai pembagi dan satu meja 2 -kolom(yaitu , kolom " a" dan " b " ) sebagai dividen . Tabel harus memiliki kolom umum (misalnya , kolom " a " ) . ituOutput dari operasi KESENJANGAN adalah kolom tunggal dengan nilai-nilai kolom " a " dari baris tabel dividendimana nilai kolom umum ( yaitu , kolom " a " ) di kedua tabel matches.Figure 3.17 menunjukkan KESENJANGAN a.
Tidak ada komentar:
Posting Komentar