Pengenalan
Bayangkan mengubah garaj yang berantakan ke dalam ruang yang teratur dan terang di mana segala-galanya mudah diakses dan disusun dengan kemas. Dalam dunia pangkalan data, proses ini dipanggil normalisasi. Sama seperti garaj yang rapi meningkatkan kecekapan, pangkalan data berstruktur dengan data teratur melakukan lebih baik. Bersedia untuk mengetahui lebih lanjut? Artikel ini meneroka tiga bentuk normal yang pertama - 1NF, 2NF, dan 3NF - dengan contoh SQL praktikal. Terlepas dari pengalaman reka bentuk pangkalan data anda, anda akan belajar bagaimana untuk membina pangkalan data yang lebih cekap dan berskala. Bersedia untuk mengoptimumkan data anda? Mari mulakan!
Gambaran Keseluruhan
- Pegang prinsip teras dan matlamat normalisasi pangkalan data menggunakan SQL.
- Sapukan bentuk normal pertama (1NF) untuk memastikan nilai atom dan kunci utama.
- Kenal pasti dan menghapuskan kebergantungan separa untuk mencapai bentuk normal kedua (2NF).
- Keluarkan kebergantungan transitif untuk memenuhi keperluan bentuk normal ketiga (3NF).
- Melaksanakan struktur pangkalan data yang dinormalisasi menggunakan pertanyaan SQL praktikal.
Jadual Kandungan
- Pengenalan
- Apakah normalisasi?
- Borang Normal Pertama (1NF)
- Borang Normal Kedua (2nf)
- Borang Normal Ketiga (3nf)
- Contoh praktikal: Membawa semuanya bersama
- Kesimpulan
- Soalan yang sering ditanya
Apakah normalisasi?
Normalisasi adalah aspek penting dalam reka bentuk pangkalan data relasi. Ia menyelaraskan organisasi data dengan meminimumkan redundansi dan meningkatkan integriti data. Proses ini melibatkan pemisahan pangkalan data ke dalam pelbagai jadual dan menentukan hubungan di antara mereka berdasarkan peraturan yang ditetapkan, dengan itu mengurangkan anomali data. Mari kita periksa setiap bentuk biasa secara terperinci, menggariskan prinsip -prinsip dan menggambarkannya dengan contoh SQL praktikal.
Borang Normal Pertama (1NF)
Objektif: Pastikan setiap jadual mempunyai kunci utama dan setiap lajur mengandungi nilai atom (tidak dapat dipisahkan). Jadual memenuhi 1NF jika ia mematuhi peraturan ini:
- Nilai Atom: Setiap lajur hendaklah memegang hanya satu nilai setiap baris.
- Nama lajur unik: Setiap lajur mesti mempunyai pengenal yang unik.
- Perintah Kemerdekaan: Perintah penyimpanan data tidak relevan.
Contoh:
Pertimbangkan jadual yang tidak normal dengan kumpulan berulang:
OrderId | Customername | Produk | Kuantiti |
---|---|---|---|
1 | John Doe | Pen, pensil | 2, 3 |
2 | Jane Smith | Notebook, Eraser | 1, 2 |
Jadual ini melanggar 1NF kerana lajur Products
dan Quantities
mengandungi pelbagai nilai.
Penukaran ke 1nf:
OrderId | Customername | Produk | Kuantiti |
---|---|---|---|
1 | John Doe | Pen | 2 |
1 | John Doe | Pensil | 3 |
2 | Jane Smith | Buku nota | 1 |
2 | Jane Smith | Pemadam | 2 |
Pelaksanaan SQL:
Buat pesanan jadual ( OrderId int, CustomerName Varchar (255), VARCHAR PRODUK (255), Kuantiti int, Kunci Utama (OrderID, Produk) );
Borang Normal Kedua (2nf)
Objektif: Pastikan jadual berada dalam 1NF dan semua atribut bukan kunci bergantung sepenuhnya pada keseluruhan kunci utama. Ini amat relevan untuk jadual dengan kunci utama komposit.
Langkah -langkah untuk mencapai 2NF:
- Pematuhan 1NF: Jadual mesti sudah sesuai dengan 1NF.
- Menghapuskan kebergantungan separa: Pastikan atribut bukan kunci bergantung kepada kunci utama yang lengkap, bukan hanya sebahagian daripadanya.
Contoh:
Pertimbangkan jadual dalam 1NF tetapi mempamerkan kebergantungan separa:
OrderId | CustomerID | ProductID | Kuantiti | Customername |
---|---|---|---|---|
1 | 1 | 1 | 2 | John Doe |
2 | 2 | 2 | 1 | Jane Smith |
Di sini, CustomerName
hanya bergantung pada CustomerID
, bukan kunci komposit ( OrderID
, ProductID
).
Penukaran ke 2nf:
- Buat jadual berasingan untuk
Orders
danCustomers
:
Pesanan Jadual:
OrderId | CustomerID | ProductID | Kuantiti |
---|---|---|---|
1 | 1 | 1 | 2 |
2 | 2 | 2 | 1 |
Jadual Pelanggan:
CustomerID | Customername |
---|---|
1 | John Doe |
2 | Jane Smith |
Pelaksanaan SQL:
Buat pesanan jadual ( OrderId int, Int CustomerId, ProductID int, Kuantiti int, Kunci Utama (OrderID, ProductID) ); Buat Pelanggan Jadual ( Kunci utama Int CustomerId, Customername Varchar (255) );
Borang Normal Ketiga (3nf)
Objektif: Pastikan jadual berada dalam 2NF dan semua atribut bergantung semata -mata pada kunci utama.
Langkah -langkah untuk mencapai 3NF:
- Pematuhan 2NF: Jadual mesti memenuhi keperluan 2NF.
- Keluarkan kebergantungan transitif: Pastikan atribut bukan kunci tidak bergantung kepada atribut bukan kunci yang lain.
Contoh:
Pertimbangkan jadual dalam 2NF tetapi dengan kebergantungan transitif:
OrderId | CustomerID | ProductID | Kuantiti | ProductName |
---|---|---|---|---|
1 | 1 | 1 | 2 | Pen |
2 | 2 | 2 | 1 | Buku nota |
Di sini, ProductName
bergantung kepada ProductID
, bukan secara langsung pada OrderID
.
Penukaran ke 3nf:
- Buat jadual berasingan untuk
Orders
danProducts
:
Pesanan Jadual:
OrderId | CustomerID | ProductID | Kuantiti |
---|---|---|---|
1 | 1 | 1 | 2 |
2 | 2 | 2 | 1 |
Jadual Produk:
ProductID | ProductName |
---|---|
1 | Pen |
2 | Buku nota |
Pelaksanaan SQL:
Buat pesanan jadual ( OrderId int, Int CustomerId, ProductID int, Kuantiti int, Kunci Utama (OrderID, ProductID) ); Buat Pelanggan Jadual ( Kunci utama Int CustomerId, Customername Varchar (255) ); Buat produk jadual ( ProductID int utama utama, ProductName Varchar (255) );
Contoh praktikal: Membawa semuanya bersama
Mari kita mulakan dengan data yang tidak normal ini:
OrderId | Customername | Produk | Kuantiti |
---|---|---|---|
1 | John Doe | Pen, pensil | 2, 3 |
2 | Jane Smith | Notebook, Eraser | 1, 2 |
Langkah 1: Tukar ke 1nf
Lajur multi-nilai berasingan ke nilai atom:
OrderId | Customername | Produk | Kuantiti |
---|---|---|---|
1 | John Doe | Pen | 2 |
1 | John Doe | Pensil | 3 |
2 | Jane Smith | Buku nota | 1 |
2 | Jane Smith | Pemadam | 2 |
Langkah 2: Tukar ke 2nf
Mengenal pasti dan berasingan kebergantungan separa:
- Pesanan Jadual:
OrderId | CustomerID | ProductID | Kuantiti |
---|---|---|---|
1 | 1 | 1 | 2 |
1 | 1 | 2 | 3 |
2 | 2 | 3 | 1 |
2 | 2 | 4 | 2 |
- Jadual Pelanggan:
CustomerID | Customername |
---|---|
1 | John Doe |
2 | Jane Smith |
- Jadual Produk:
ProductID | ProductName |
---|---|
1 | Pen |
2 | Pensil |
3 | Buku nota |
4 | Pemadam |
Langkah 3: Tukar ke 3nf
Menghapuskan kebergantungan transitif, memastikan kebergantungan langsung pada kunci utama sahaja:
- Jadual dari Langkah 2 sudah memenuhi 3NF kerana semua atribut bukan kunci hanya bergantung pada kunci utama.
Kesimpulan
Artikel ini menunjukkan cara melaksanakan normalisasi SQL. Menguasai normalisasi SQL adalah penting untuk membina pangkalan data yang mantap dan cekap. Dengan memahami dan menerapkan prinsip tiga bentuk normal pertama (1NF, 2NF, dan 3NF), anda dapat mengurangkan redundansi dan meningkatkan integriti data. Ini bukan sahaja memudahkan pengurusan data tetapi juga meningkatkan prestasi pangkalan data keseluruhan. Dengan contoh SQL praktikal ini, anda boleh mengubah dataset yang kompleks dan tidak teratur menjadi pangkalan data yang cekap dan berstruktur. Melaksanakan teknik ini untuk memastikan pangkalan data anda stabil, berskala, dan mudah dikekalkan.
Soalan yang sering ditanya
Q1. Apakah normalisasi pangkalan data?
A. Normalisasi pangkalan data adalah proses penstrukturan pangkalan data relasi selaras dengan satu siri bentuk normal yang dipanggil untuk mengurangkan redundansi data dan meningkatkan integriti data.
S2. Mengapa normalisasi penting?
A. Normalisasi meminimumkan duplikasi data, memastikan konsistensi data, dan memudahkan penyelenggaraan pangkalan data.
Q3. Apakah bentuk biasa?
A. Bentuk normal mewakili peringkat dalam proses normalisasi: 1NF (bentuk normal pertama), 2NF (bentuk normal kedua), dan 3NF (bentuk normal ketiga), antara lain.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan normalisasi dengan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Ini memimpin dengan episod data yang menampilkan Dr Kirk Borne, seorang saintis data terkemuka, astrofizik, dan pembesar suara TEDX. Pakar terkenal dalam Big Data, AI, dan Pembelajaran Mesin, Dr. Borne menawarkan pandangan yang tidak ternilai ke dalam keadaan semasa dan masa depan Traje

Terdapat beberapa perspektif yang sangat berwawasan dalam maklumat ini mengenai maklumat mengenai kejuruteraan yang menunjukkan kepada kita mengapa kecerdasan buatan sangat baik untuk menyokong latihan fizikal orang. Saya akan menggariskan idea teras dari setiap perspektif penyumbang untuk menunjukkan tiga aspek reka bentuk yang merupakan bahagian penting dalam penerokaan penerokaan kecerdasan buatan dalam sukan. Peranti tepi dan data peribadi mentah Idea ini mengenai kecerdasan buatan sebenarnya mengandungi dua komponen -satu yang berkaitan dengan di mana kita meletakkan model bahasa yang besar dan yang lain berkaitan dengan perbezaan antara bahasa manusia dan bahasa yang kita tanda -tanda penting kita "menyatakan" apabila diukur dalam masa nyata. Alexander Amini tahu banyak tentang berlari dan tenis, tetapi dia masih

Ketua Pegawai Maklumat Caterpillar dan Naib Presiden Kanan IT, Jamie Engstrom, mengetuai pasukan global lebih dari 2,200 profesional IT di 28 negara. Dengan 26 tahun di Caterpillar, termasuk empat setengah tahun dalam peranannya sekarang, Engst

Alat HDR Ultra baru Google Photos: Panduan Cepat Tingkatkan foto anda dengan alat Ultra HDR baru Google Photos, mengubah imej standard ke dalam karya-karya bertenaga, tinggi dinamik. Sesuai untuk media sosial, alat ini meningkatkan kesan foto,

Pengenalan Perintah Bahasa Kawalan Transaksi (TCL) adalah penting dalam SQL untuk menguruskan perubahan yang dibuat oleh pernyataan bahasa manipulasi data (DML). Perintah ini membolehkan pentadbir pangkalan data dan pengguna mengawal proses urus niaga, dengan itu

Memanfaatkan kuasa chatgpt untuk membuat pembantu AI yang diperibadikan! Tutorial ini menunjukkan kepada anda bagaimana untuk membina GPTs tersuai anda sendiri dalam lima langkah mudah, walaupun tanpa kemahiran pengekodan. Ciri -ciri utama GPTS tersuai: Buat model AI yang diperibadikan untuk t tertentu

Pengenalan Kaedah yang berlebihan dan mengatasi adalah konsep pengaturcaraan berorientasikan objek teras (OOP) yang penting untuk menulis kod fleksibel dan cekap, terutamanya dalam bidang intensif data seperti sains data dan AI. Walaupun serupa dengan nama, mekanis mereka

Pengenalan Pengurusan pangkalan data yang cekap bergantung pada pengendalian transaksi yang mahir. Bahasa pertanyaan berstruktur (SQL) menyediakan alat yang berkuasa untuk ini, menawarkan arahan untuk mengekalkan integriti data dan konsistensi. Komit dan rollback adalah pusat kepada t


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular