Blog

Chuẩn hoá cơ sở dữ liệu

7 muc chuan hoa

Chuẩn hóa cơ sở dữ liệu là áp dụng các qui tắc cho thiết kế của cơ sở dữ liệu nhằm giúp giảm dư thừa dữ liệu trong quá trình thiết kế Cơ sở dữ liệu. Đây là bước quan trọng để giúp bạn kiểm tra tính đúng đắn của quá trình thiết kế cơ sở dữ liệu.

Bài viết này sẽ giúp bạn hiểu về các mức chuẩn hóa, quá trình thực hiện chuẩn hóa cũng như áp dụng việc chuẩn hóa vào thiết kế cơ sở dữ liệu.

Các mức chuẩn hóa 

Về lý thuyết thì có 7 mức chuẩn hóa khác nhau:

7 muc chuan hoa

Tạm thời mình để đầy đủ các chuẩn và mô tả bằng tiếng Anh bạn nào quan tâm thì chịu khó đọc. Tuy nhiên, đối với thiết kế Cơ sở dữ liệu thì bạn chỉ cần áp dụng đến mức 3 là được. Do vậy, chúng ta sẽ chỉ tìm hiểu kỹ 03 mức chuẩn hóa đầu tiên.

Chuẩn 1 (1NF – First Normal Form): Giá trị được lưu trữ trong các ô phải là các giá trị đơn (scalar value) và trong bảng không có cột nào lặp lại.

Chuẩn 2 (2NF – Second Normal Form): Mọi trường không phải là khóa phải phụ thuộc vào khóa chính.

Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.

Tiến trình chuẩn hóa 

  • 1. Tiến trình để đưa bảng dữ liệu về chuẩn 1:
    • -> Chia các thành phần dữ liệu thành đơn vị nhỏ nhất hữu dụng
    • -> Loại bỏ các trường lặp lại, các trường tính toán trong bảng chúng ta có chuẩn 1
  • 2. Tiến trình để đưa bảng dữ liệu về chuẩn 2:-> Từ chuẩn 1, tách các trường không phụ thuộc vào khóa chính ra bảng riêng ta sẽ được chuẩn 2.
  • 3. Tiến trình để đưa bảng dữ liệu về chuẩn 3:-> Từ chuẩn 2, tách các trường không phụ thuộc hoàn toàn vào khóa chính (có nghĩa là có phụ thuộc thêm ít nhất một trường khác nữa ngoài khóa chính) ra bảng khác chúng ta sẽ được chuẩn 3.

Thực hành việc chuẩn hóa

Để hiểu rõ về các chuẩn và chuẩn hóa chúng ta thực hành sử dụng chuẩn hóa để xây dựng Cơ sở dữ liệu cho hệ thống quản lý đơn hàng như ở bài trước.

Mau don hang

Mẫu đơn hàng

Sau khi phân tích dữ liệu ta được các trường như sau:

Bảng Invoice (Hóa đơn)

InvoiceNo: Số hóa đơn

InvoiceDate: Ngày ghi hóa đơn

CustomerName: Tên khách hàng

CustomerCompany: Tên công ty khách hành

CustomerAddress: Địa chỉ khách hàng

CustomerAccountNo: Số tài khoản của khách hàng

PaymentMethod: Phương thức thanh toán

CustomerTaxNo: Mã số thuế của khách hàng

SequenceNo: Số thứ tự mua hành

ProductName: Tên sản phẩm

Unit: Đơn vị tính của sản phẩm

Quantity: Số lượng

UnitPrice: Đơn giá

Amount: Thành tiền

TotalAmount: Tổng tiền

VAT: Thuế giá trị gia tăng

TotalPay: Tổng tiền phải trả

ByText: Ghi bằng chữ

1. Đưa bảng dữ liệu về chuẩn 1:

  • 1. Chia các thành phần dữ liệu thành đơn vị nhỏ nhất hữu dụng:
    • -> Chia trường CustomerName thành CustomerFirstName và CustomerLastName
    • -> Chia trường CustomerAddress thành CustomerAddress, CustomerDistrict và CustomerCity
  • 2. Loại bỏ các trường lặp lại và tính toán
    • -> Loại bỏ các trường: Amount, TotalAmount, TotalPay, ByText

(Xem lại bài Thiết kế cơ sở dữ liệu để hiểu vì sao tách các trường này và vì sao loại bỏ các trường trên)

Lúc này ta được bảng dữ liệu theo chuẩn 1 như sau:

Bảng Invoice (Hóa đơn)

InvoiceNo: Số hóa đơn

InvoiceDate: Ngày ghi hóa đơn

CustomerFirstName: Tên khách hàng

CustomerLastName: Họ lót khách hàng

CustomerCompany: Tên công ty khách hành

CustomerAddress: Địa chỉ khách hàng

CustomerDistrict: Quận nơi khách hàng đang ở

CustomerCity: Thành phố nơi khách hàng đang ở

CustomerAccountNo: Số tài khoản của khách hàng

PaymentMethod: Phương thức thanh toán

CustomerTaxNo: Mã số thuế của khách hàng

SequenceNo: Số thứ tự mua hành

ProductName: Tên sản phẩm

Unit: Đơn vị tính của sản phẩm

Quantity: Số lượng

UnitPrice: Đơn giá

VAT: Thuế giá trị gia tăng

2. Đưa bảng dữ liệu về chuẩn 2:

  • Từ chuẩn 1, xem xét các trường không phụ thuộc vào khóa chính để tách ra thành bảng riêng.
    • 1. Xem xét từ trên xuống chúng ta sẽ thấy các trường: CustomerFirstName, CustomerLastName, CustomerCompany, CustomerAddress, CustomerDistrict, CustomerCity, CustomerAccountNo, CustomerTaxNo phụ thuộc vào khách hàng chứ không phụ thuộc vào hóa đơn nên tách nhóm này ra thành bảng Khách hàng (Customer), phát sinh mã khách hàng làm khóa chính.
    • 2. Các trường: ProductName, Unit phụ thuộc vào sản phẩm chứ không phải hóa đơn nên tách ra thành bảng Sản phẩm (Product) và phát sinh khóa chính cho nó.

Lúc này chúng ta có được 03 bảng dữ liệu như sau:

Customer

CustomerNo

CustomerFirstName

CustomerLastName

CustomerCompany

CustomerAddress

CustomerDistric

CustomerCity

CustomerAccountNo

CustomerTaxNo

Product

ProductNo

ProductName

Unit

Invoice

InvoiceNo

InvoiceDate

PaymentMethod

SequenceNo

Quantity

UnitPrice

VAT

Xác định mối quan hệ và đặt khóa ngoại cho trường CustomerNo và ProductNo chúng ta được sơ đồ thực thể cho mức 2 như sau:

Thiết kế cơ sở dữ liệu - Thực thể 3

3. Đưa các bảng dữ liệu về chuẩn 3:

  • Xem xét các trường từ các bảng không phụ thuộc hoàn toàn vào khóa chính ra bảng khác để về chuẩn 3.
    • 1. Các trường ở bảng Customer và Product đã phụ thuộc hoàn toàn vào khóa chính nên các bảng này đã ở chuẩn 3
    • 2. Các trường SequenceNo, Quantity, UnitPrice của bảng Invoice bên cạnh việc phụ thuộc vào hóa đơn nó còn phải phụ thuộc vào ProductNo (mặt hàng nào) nữa mới biết được giá trị của nó. Nên các trường này không phụ thuộc hoàn toàn vào khóa chính. Tách các trường này ra bảng mới và đặt tên thành OrderDetails và phát sinh khóa chính cho nó.

Lúc này bảng Invoice được chia thành Invoice và InvoiceDetails như sau:

Invoice

InvoiceNo

InvoiceDate

PaymentMethod

VAT

CustomerNo

InvoiceDetails

InvoiceDetailsNo

SequenceNo

ProductID

Quantity

UnitPrice

Lúc này tất cả các bảng đã ở chuẩn mức 3. Thiết lập mối quan hệ và khóa ngoại ta được sơ đồ quan hệ thực thể như sau:

Thiết kế cơ sở dữ liệu - Thực thể 6

Lưu ý

Trong bài này để bạn nắm rõ về các mức chuẩn hóa tôi đã áp dụng chuẩn hóa từ Mức 1 -> Mức 2 -> Mức 3. Trong thực tế, khi thiết kế cơ sở dữ liệu bạn làm qua 4 bước đầu tiên trong quá trình thiết kế cơ sở dữ liệu như ở bài Thiết kế cơ sở dữ liệu để có sơ đồ quan hệ thực thể. Sau đó, áp dụng các qui tắc chuẩn hóa này để kiểm tra các bảng và đưa các bảng về chuẩn 3 thì sẽ dễ hiểu và dễ thực hiện hơn.

Kết luận

Chuẩn hóa Cơ sở dữ liệu để đạt chuẩn 3 là công việc bắt buộc trong thiết kế cơ  sở dữ liệu quan hệ. Tuy nhiên, rất nhiều bạn mặt dù đã học qua môn học này vẫn chưa nắm rõ các qui tắc này. Bài viết này hy vọng giúp đỡ được bạn.

Nguồn: Internet

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    suarairama pestanada beritabandar rumahjurnal podiumnews dailyinfo wikiberita zonamusiktop musicpromote bengkelpintar liburanyuk jelajahhijau carimobilindonesia jalanjalan-indonesia otomotifmotorindo ngobrol olahraga mabar dapurkuliner radarbandung indosiar radarjawa medianews infowarkop kalbarnews ketapangnews beritabumi kabarsantai outfit faktagosip beritagram lagupopuler seputardigital updatecepat marihidupsehat baliutama hotviralnews cctvjalanan beritajalan beritapembangunan pontianaknews monitorberita koronovirus museros iklanjualbeli festajunina capoeiravadiacao georgegordonfirstnation 1reservoir revisednews

    Cara Insting Tajam Menyusun Pola Simetris Baccarat Online Lewat Mekanisme yang Optimal Analisis Pemain Bogor Melalui Logika dan Emosi Mahjong Wins 3 Ternyata Cermin dari Kesabaran Diri Strategi Ganda Baccarat Pemain Makassar Viral! Kemenangan Ganda Membaca Pola Masa Depan Catatan Manual ke Strategi Nyata, Pemain Bogor Temukan Pola Mahjong Ways 2 Membungkam Mitos Keberuntungan Analisis Sunyi Pemain Baccarat Jakarta Temukan Logika di Balik Kekacauan yang Terencana Teknik Presisi Mengatur Kecepatan Spin Mahjong Ways 3 Untuk Kenaikan Hasil yang Ideal Mulai dengan Doa Menang Cara Efektif Menganalisis Trik Baccarat Online Secara Sistematis Cara Unlock Pola Tersembunyi Mahjong Wins 3 Sebagai Langkah Pintar Meraih Kemenangan Trik Escape di Putaran Cepat Pragmatic Gate Olympus Sambut Kemenangan Spesial Pelajari Membaca Pola Sederhana Mahjong Ways 2 Bikin Menang Tipis Tapi Tetap Stabil Taktik Rahasia Supir Pribadi Memanggil Scatter Hitam di Mahjong Ways 2 Saat Drive Thru Cara Intuisi Bekerja Mencatat Pola Baccarat Online Melalui Skema yang Sempurna Tafsir Personal Membuka Pintu Berkah Lewat Mahjong Wins 3 Bikin Keuntungan Tetap Stabil Arsip Data Narasi Gates of Olympus Ciptakan Putaran Warna Spesial Lebih Menguntungan Resonansi Sunyi di Tengah Irama Mahjong Ways 3 Berikan Labirin Menuju Cuan Besar Pahami Aturan Bermain Mahjong Ways dengan Logika yang Mendalam Pelajari Cara Meretas Pola Inti Mahjong Ways 3 Menjadi Kunci Keberhasilan Pemain Pro Langkah Terukur Dalam Mengatur Waktu Baccarat Online Berbalut Mantra Menjemput Kemenangan Trik Spin Matic Mahjong Wins 3 dengan Cermat Menghasilkan Kemenangan Ganda Ternyata Scatter Bisa Turun Lewat Pola Sederhana Melalui Penguasaan Rtp yang Presisi Dimensi Scatter Ganda Mahjong Ways 2 Sebagai Takdir Kemenangan Nyata Merubah Nasib Ekspansi Kosmik Wild Membangun Fitur Kejayaan Abadi Dunia Mahjong Wins 3 Kakek Tua di Pantai Ancol Menemukan Jejak Pola Gates of Olympus Membawa Cuan Berlimpah Kisah Sang Legenda Baccarat Online Temukan Lembaran Data Sebagai Analisa Merubah Garis Kehidupan Cara Mendengar Langkah Sunyi Scatter Hitam Sebagai Sinyal Kemenangan di Mahjong Ways 3 Setelan Ideal Sinkronisasi Pola Mahjong Ways 2 Mengatur Tempo Scatter dengan Hasil Optimal Cara Evaluasi Sederhana Cepat Kuasai Trik Baccarat Online Secara Tepat dan Terarah Konsolidasi Pola Spin Membantu Menunjukkan Arah Strategis di Mahjong Ways 3 Bangkitkan Semangat Menjemput Rejeki Lewat Mahjong Ways Saat Scatter Muncul Tiba-tiba Fakta Unik Mahjong Wins 3: Teknik Rahasia Munculkan Wild Berderet pada Spin Pertama Semarang Menjadi Kota Fantasi Mahjong, Tukang Edit Foto Mengunggah Permainan Pola Mahjong Terbaru Hujan Deras, Sejumlah Pengendara Menepi dan Mencoba Bermain Mahjong Wins 3 yang Sedang Bocor Saat Ini Fenomena Tengah Malam, Mahjong Ways 3 Tiba-Tiba Berubah Warna dan Disebut Masuk Mode Rahasia Scatter Black Peneliti Visual SUHUBET Ungkap Sinkronisasi Pola Mahjong dan Musik, Disebut Harmoni Terserasi Tahun Ini Kobarkan Semangat Syair Mahjong, Tangerang Gelarkan Protokol Putaran Cepat 50 Kali Dalam 1 Kali Coba Spin Strategi Hidup Dan Mati Pola Terbaik Anti Boncor Menghadirkan Berbagai Penghasilan Terbesar Pada Mahjong Ways 3 Hanya Menggunakan Mahjong Ways Mendapatkan Rp150.000.000 Tips Cara Memelihara Anabull Ala Husman Timeline Rahasia Perputaran Mahjong Wins Dapat Membuat Turunnya Pola Jackpot Dengan Konsisten Pengembangan Mahjong Dengan Teknologi Ai Menghadirkan Pola Jackpot Dengan Market Cap Hijau Pola Mahjong Tercepat Dan Tertajam Tips Membaca Pola Hingga Pandai Ala Jefri Dengan Hasil Rp 210.000.000 Shin Tae-Yong Sudah Fix Tidak Melatih Timnas Cek Juga Tempat Jadwal Nonton Bola Harian di SLOTSENSA Cerdas Cermat Membaca Dan Analisis Pola Mahjong Dengan Bermodal 50k Menjadi Rp150.000.000 Sangat Optimis Hanto Dengan Perputaran Menarik Melawan Mahjong Menggunakan Pola Hasil Analisis Data Spirit Perjuangan Hilman Bertambah Besar Setelah Memenangkan Rp 410.000.000 dari Pertarungan Mahjong Sinopsis Penulis Mengungkap Pertarungan Dengan Naga Mahjong Menggunakan Teknik Praktis dan Pola Visual Edukasi Taktik Perputaran Mahjong Anti Boncos Dengan Spin Hati-Hati Tips Strategi Efektif dan Sangat Efisien Pada Perputaran Gates Of Olympus Dari Kilua Terkaget-kaget Karena Jatuhnya Naga Hitam di Halaman Permainan Mahjong di Sukabumi El Clásico Malam Ini: Real Madrid vs Barcelona Persiapan, Statistik & Tempat Nonton Seru di SUHUBET Kisah Joko, Pemuda Asal Bandung yang Membagikan Pengalaman Tentang Ritme dan Perputaran Mahjong Resmi Mengaspal, Motor NMAX Baru Milik Pencuci Motor Ternyata Berasal dari Rezeki Tak Terduga Cara Paling Efektif Memahami dan Membaca Pola Data Analisis Mahjong Ways Dengan Taktik Lincah Resmi Meluncur di October Ini, Mahjong Menghadirkan Berbagai Pecahan Besar Dengan Hadiah Rp750.000.000 Zona Nyaman Perputaran Mahjong: Bersenang-senang dengan Pecahan yang Terasa Stabil Penyerapan Media Game di Dunia Digital Menghadirkan Berbagai Bakat Desainer Game Muda Menerpa Ombak: Kusman Menerjang Gates Olympus dengan Perputaran Santai Bermodal 50 Ribu Bukan Cuma Pola Harian, Pola ProPlayer Mahjong Menjadi Sorotan Berkat Konsistensi dan Ketelitian Divisi Khusus Forensik Mahjong Membongkar Pola Visual dan Data Permainan yang Mencuri Perhatian Komunitas RTP yang Diidam-idamkan Pemain Mahjong, Komunitas Menyebut SUHUBET Memberikan Data Transparan Kisah Bu Titin Membeli Mobil Baru Bermodalkan Kedisiplinan dan Hobi Mahjong dengan Gaya Putaran Anti Stuck Eksperimen Membaca RTP Mahjong Ways 2 dan Penggunaan Putaran Auto Pengali 1000 di SUHUBET Tidak Sengaja Menekan Tombol Maksimal di Mahjong Ways 2 Berubah Menjadi Hasil Memukau Rp 460.000.000 Data Analisis Terbesar Bocor, Panduan Pola Mahjong Ways 3 Mendapatkan Rp225.000.000 Tukang Pengantar Makanan Mendapatkan Berkat Dari Mahjong Sebesar Rp110.000.000 Pada Saat Istirahat Cuan Dengan Modal Kecil, Pengaduk Semen Mendapatkan Rp35.000.000 Saat Istirahat Mahjong Dengan Naga Hitam Anti Lag Berkat Fitur Auto Refresh Terbaru Kisah Journey Seorang Pedagang Asongan Bertemu Dengan Mahjong Setelah Mendapatkan Rp 620.000.000 Copy Perputaran ProPlayer Mahjong, Timo Mendapatkan Jackpot 120.000.000 Setelah Mengikuti Jalan Pemain Legend Panduan Analisis Pola Mahjong Terbaru Berdasarkan Data Komunitas SUHUBET Hingga Rp 741.000.000 Perpaduan Analogi dan Anatomi Simbol Terbaru Mahjong Menghadirkan Pembaruan Wild Dengan Menyatakan Rp152.000.000 Di Depan Mata Fenomena Langka di Komunitas Digital Mahjong Black Dragon, Visualnya Bikin Kagum Perpaduan Suara dan Penyajian Semerbak untuk Mata Kita, Mahjong Sedang Melakukan Pembangunan Besar Besaran Beginilah Caranya Agar Perputaran Selalu Stabil dan Membuat Mahjong Seru untuk Diperjuangkan Perbincangan yang Memberikan Esensi Kehidupan Mahjong dengan Datangnya Pola Wild Anti Kalah Host Livestreaming Sedang Menjadi Perbincangan, Dikarenakan Bermain Mahjong dengan Pecahan Besar Diketahui Bermain di SUHUBET Cerita Tukang Parkir Bandung Kagum Lihat Efek Wild Naga di Mahjong Ways Bangsawan SUHUBET Membeberkan Cara Kuasai Teknik Mahjong Dengan Pola Mudah Raup Untung 362 Juta Taktik Multiplier Spin Dengan Tingkatkan Pendapatan di Mahjong, Strategi Sederhana Seorang Penempa Besi Raup Untung 410 Juta Kecil-Kecil Jadi Bukit, Filosofi Putaran Mahjong Tentang Konsistensi dan Hasil yang Besar | Tips Putaran Receh Dikira Kurir Mengantar Paket di Pagi Hari, Ternyata Mengantarkan Simbol Wild 231 Juta di Mahjong kepada Nina Kronologi Jatuhnya Naga Black Scatter Pada Perputaran Gratis Mahjong, Ilham Menghasilkan 410 Juta Analisa Bocoran Data Mahjong Ways dan Pola Putaran RTP Terbaik Bikin Heboh Dunia Digital Observasi Data Menunjukkan Pola Mahjong Ways Muncul Seperti Gelombang Kebahagiaan Riset Pola Harian Mahjong Ways Ungkap Hubungan Menarik dengan Data Digital Pola RTP Tertinggi Ketika Statistik Menjadi Seni Analisis Mahjong Ways Ubah Cara Orang Melihat Pola Pada RTP Tertinggi Penjual Tahu Bulat Dadakan Dikagetkan Sama Pecahnya Wild Mahjong Wins 3 Dengan Membawakan 450 Juta Pemain Pro Dari Kota Madiun Berbagi Taktik Permainan Mahjong Wins 3 Yang Menghasilkan Berbagai Kemenangan Terbukti Ampuh, Suherman Menggunakan Pola Terlarang Permainan Mahjong Ways 3 Dengan Hasil 320.000.000 Rahasia Terbaru Pola Mahjong Ways 3 Terbongkar RTP98% Membawakan Wild Sebesar 410.000.000 Suli Dari Pemantang Siantar Membawakan Pola Terbaru Hasil Analisa Terbaru Mahjong Wins 3 Dengan Cara High Risk High Return Dari Bali Hingga Seoul, Tren Spa Ramah Lingkungan dan Filosofi Mahjong Ways Mulai Jadi Gaya Hidup Baru Di Balik Hening dan Aroma Kayu Manis: Pola Ketenangan yang Sama Seperti Saat Menemukan Irama di Mahjong Wins Gelombang Baru Wellness di Asia Pasifik: Saat Spa dan Pola Mahjong Wins Sama-Sama Bicara Tentang Kesabaran dan Irama Rahasia Di Balik Senyum Para Penerima APSWC 2025 Awards: Dari Pola Hidup Seimbang Hingga Filosofi Mahjong Ways Wellness Tak Lagi Sekadar Tren: Data Menunjukkan Pola Mahjong Ways dan Mindfulness Kini Jadi Arah Baru Dunia Mahjong Wins 3 Jadi Bahan Analisis Baru Dunia Digital, Kombinasi Unik Pola Relatif Dikemukakan Mahjong Wins 3 Viral Setelah Kisah Istri Bandung Ditinggal Suami P3K. Trik Korelasi antar Pola Pemuda Jakarta Klaim Pola Napas Panjang di Mahjong Ways 2 Bisa Jaga RTP Tetap Naik Mahasiswa Informatika Gunakan Algoritma Sendiri untuk Analisis Pola Mahjong Wins 3 Mahasiswi Ekonomi Temukan Korelasi Antara Pola Baccarat dan Mahjong Wins 3 repository.tdjpublisher.com