Normalisasi basis data tanpa akses ke sumber data?


8

Saya telah memulai peran baru yang menangani sejumlah besar data terkait. Sumber kami untuk semua data ini adalah berbagai dump Excel yang ditarik dari basis data yang tidak dapat kami akses. Orang sebelumnya yang mengisi peran ini menggunakan selusin file Excel untuk mengumpulkan file data ini, memanipulasinya, dan membuat laporan.

Saya sudah mulai memindahkan kesedihan ke database Access. Saya telah memperhatikan banyak data Excel terkait dan mungkin harus dinormalisasi. Apa yang saya lakukan saat ini adalah membuat tabel untuk setiap dump data, dan mengimpornya ke Access, dan menggunakan sejumlah pertanyaan untuk mereplikasi lusinan manipulasi dan pelaporan data.

Apakah masih ada manfaat untuk menormalkan data di mana satu-satunya sumber saya adalah Excel dibuang dari gudang?

Bagaimana saya menormalkan data, ketika saya tidak memiliki kemampuan untuk mengubah format bagaimana dump dikirim kepada saya?

Selain itu, rencana saya (tergantung anggaran) adalah untuk berpindah dari Access ke MS SQL Database.


4
Biasanya, Anda TIDAK ingin menormalkan data yang non-transaksional dan hanya akan digunakan untuk pelaporan. Jika data keluar dari gudang data, mereka sudah melakukan kerja keras untuk Anda. Hanya memuatnya ke Access dan minta pergi.
HardCode

Hanya untuk memperjelas, apakah kesedihan Excel mengandung data mentah, atau apakah data pra-agregat / laporan? Apakah sumber data berasal dari jenis ekspor vendor (yaitu, apakah Anda dapat berkomunikasi dengan siapa pun yang merancang struktur data yang terlibat)?
Jon Seigel

Pembuangan Excel berasal dari vendor atau gudang data kami sendiri, dan itu juga merupakan data mentah, atau data mentah dengan jumlah minimal transformasi (mis. 0/1 perubahan menjadi Ya / Tidak, atau Kode Aktik yang dipetakan ke Deskripsi Akun). Saya dapat berkomunikasi dengan mereka yang mendesain struktur data tetapi tidak memiliki suara dalam bagaimana mereka dirancang. Untuk memberikan beberapa konteks, saya bukan DBA, tapi saya mencoba mencari solusi terbaik untuk tim kami mengingat kendala anggaran dan politik.
pedram

Jawaban:


6

Ya ada manfaat signifikan terhadap normalisasi data jika Anda bersedia melakukan pekerjaan untuk mencapai dan memeliharanya. Dua manfaat mendasar untuk normalisasi adalah:

  • Integritas data
  • Fleksibilitas Permintaan

Pendekatan sederhana untuk normalisasi adalah membuat tabel untuk setiap orang, tempat, benda, konsep, atau peristiwa. Dengan melakukan ini, Anda memiliki masing-masing karakteristik dari setiap orang, tempat, benda, konsep, atau peristiwa yang menarik bagi Anda dalam satu dan hanya satu tempat dalam database. Manfaat integritas data tercapai ketika Anda memasukkan dan memperbarui data. Karena Anda telah menormalkan, Anda tidak memiliki salinan berlebihan dengan karakteristik yang sama di banyak tempat di seluruh database, masing-masing dengan nilai yang berbeda, yang harus Anda ingat untuk diperbarui dan tetap sinkron. Kedua, Anda hanya memiliki satu tempat di database untuk memprogram pemeriksaan saat memasukkan atau memperbarui data untuk memastikan data tersebut valid. Karena data Anda datang dari banyak spreadsheet excel, normalisasi data Anda memberi Anda kesempatan untuk menerapkan pemeriksaan integritas data pada beban untuk memastikan analisis Anda didasarkan pada data yang akurat. Manfaat dari fleksibilitas permintaan tercapai ketika Anda ingin membaca dan menganalisis data. Karena Anda telah menormalkan data, Anda dapat menghubungkan tabel dengan cara yang fleksibel berdasarkan pertanyaan tentang data yang ingin Anda jawab, termasuk hanya apa yang Anda butuhkan untuk menjawab pertanyaan spesifik. Kedua, ini memungkinkan database untuk mengembalikan jawaban atas pertanyaan Anda lebih cepat daripada jika harus memindai semua data, termasuk data yang tidak relevan dengan pertanyaan Anda, dalam tabel yang tidak dinormalisasi. Karena Anda telah menormalkan data, Anda dapat menghubungkan tabel dengan cara yang fleksibel berdasarkan pertanyaan tentang data yang ingin Anda jawab, termasuk hanya apa yang Anda butuhkan untuk menjawab pertanyaan spesifik. Kedua, ini memungkinkan database untuk mengembalikan jawaban atas pertanyaan Anda lebih cepat daripada jika harus memindai semua data, termasuk data yang tidak relevan dengan pertanyaan Anda, dalam tabel yang tidak dinormalisasi. Karena Anda telah menormalkan data, Anda dapat menghubungkan tabel dengan cara yang fleksibel berdasarkan pertanyaan tentang data yang ingin Anda jawab, termasuk hanya apa yang Anda butuhkan untuk menjawab pertanyaan spesifik. Kedua, ini memungkinkan database untuk mengembalikan jawaban atas pertanyaan Anda lebih cepat daripada jika harus memindai semua data, termasuk data yang tidak relevan dengan pertanyaan Anda, dalam tabel yang tidak dinormalisasi.

Access adalah DBMS yang disederhanakan dan memang termasuk prosesor SQL dasar yang memungkinkan Anda untuk menulis kueri dan dengan demikian mengambil keuntungan dari manfaat data yang dinormalisasi. Jika Anda akhirnya akan pindah ke SQL Server, yang merupakan DBMS berfitur lengkap, maka menormalkan data Anda sekarang akan memudahkan transisi dan membiarkan Anda mengambil keuntungan dari kapabilitas penuh SQL Server dan penerapan SQL yang sangat kaya.

Seperti yang saya sebutkan di awal, untuk mencapai manfaat ini Anda harus bersedia melakukan pemrograman di muka untuk menerjemahkan data yang datang dari berbagai dump excel Anda dan memetakan baris dan kolom dalam spreadsheet tersebut ke tabel yang dinormalisasi. Ini bukan latihan sepele tetapi bisa dilakukan dengan menggunakan pemrograman Access. Salah satu pendekatan adalah membuat tabel yang mereplikasi data seperti di sumber dan memuat data ke dalamnya. Ini dikenal sebagai panggungmeja. Setelah Anda memiliki data yang tidak dinormalisasi dalam tabel Access, Anda kemudian dapat lebih mudah menulis kode akses menggunakan SQL untuk mengekstrak data dari tabel tahapan tersebut, menormalkannya, mengidentifikasi masalah kualitas data (katakanlah karakteristik yang sama dalam dua dump excel berbeda yang seharusnya memiliki nilai yang sama tetapi tidak), dan muat ke dalam tabel normal Anda. Ini adalah metode umum untuk menormalkan data yang berasal dari sumber yang tidak dinormalisasi yang sangat umum di gudang data berbasis area subjek.

Anda akan menemukan tingkat upaya tambahan ini layak dilakukan meskipun sekali Anda memiliki data yang berkualitas tinggi dan dinormalisasi dalam database akses Anda. Anda melaporkan konsumen akan melihat bahwa Anda adalah profesional data nyata ketika Anda menunjukkan kepada mereka contoh-contoh di mana kualitas data buruk dan Anda menemukan fakta itu sehingga dapat diperbaiki di sumbernya. Demikian juga, ketika mereka meminta laporan baru yang menganalisis data dengan cara yang sangat berbeda, Anda dapat dengan cepat membuat laporan baru menggunakan SQL untuk menggabungkan data dalam tabel yang dinormalisasi dengan cara yang sangat berbeda ini yang pada awalnya tidak diantisipasi. Mereka akan sangat terkesan bahwa Anda dapat melakukan ini dengan cepat dan mudah!

Saya harap ini membantu menjelaskan mengapa normalisasi bermanfaat bagi Anda.


Terima kasih banyak! Sebuah jawaban indah yang membuat saya yakin untuk melakukan upaya di muka untuk membersihkan kekacauan ini. Saya ingin tahu apakah Anda memiliki buku yang direkomendasikan atau sumber lain untuk dibaca tentang praktik terbaik untuk normalisasi basis data dan konsep penting lainnya?
pedram

3
Senang saya bisa membantu. Berikut ini adalah tautan yang layak pada desain dan normalisasi basis data secara umum - sqa.org.uk/e-learning/MDBS01CD/page_01.htm . Ini cukup bagus karena menjaga hal-hal sederhana dan paling mudah untuk memahami banyak contoh yang saya lihat. Buku yang bagus, terutama karena Anda dapat pindah ke SQL Server, adalah Louis Davidson's "Pro SQL Server 2012 Relational Database Design and Implementation". Buku ini berisi praktik terbaik selain normalisasi dan memberikan contoh untuk SQL Server. Untuk pementasan, lihat "Perangkat ETL Gudang Data" oleh Ralph Kimball. Semoga berhasil!
Todd Everett
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.