กลับไปหน้าบทความ

อ่าน 5 นาที

รูปแบบปกติแรก

รูปแบบปกติขั้นที่หนึ่ง ( 1NF ) เป็นระดับพื้นฐานที่สุดของ การทำให้ฐานข้อมูลเป็นมาตรฐาน ซึ่งกำหนดโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวอังกฤษ Edgar F.

รูปแบบปกติแรก

รูปแบบปกติขั้นที่หนึ่ง ( 1NF ) เป็นระดับพื้นฐานที่สุดของการทำให้ฐานข้อมูลเป็นมาตรฐานซึ่งกำหนดโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวอังกฤษEdgar F. Coddผู้คิดค้นฐานข้อมูลเชิงสัมพันธ์ความสัมพันธ์ (หรือตารางในSQL ) สามารถกล่าวได้ว่าอยู่ในรูปแบบปกติขั้นที่หนึ่ง หากแต่ละฟิลด์เป็นอะตอมิกซึ่งประกอบด้วยค่าเดียว แทนที่จะเป็นชุดของค่าหรือตารางซ้อนกัน กล่าวอีกนัยหนึ่ง ความสัมพันธ์เป็นไปตามรูปแบบปกติขั้นที่หนึ่ง หากไม่มีโดเมนแอตทริบิวต์ (ชุดของค่าที่อนุญาตในคอลัมน์ที่กำหนด) ที่มีความสัมพันธ์เป็นองค์ประกอบ[ 1 ]

ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่ รวมถึง SQL มาตรฐาน ไม่รองรับการสร้างหรือใช้คอลัมน์แบบตาราง ซึ่งหมายความว่าฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่จะอยู่ในรูปแบบปกติขั้นที่ 1 โดยจำเป็น มิฉะนั้น การทำให้เป็นปกติเป็น 1NF จะเกี่ยวข้องกับการกำจัดความสัมพันธ์แบบซ้อนกันโดยการแยกออกเป็นความสัมพันธ์ที่แยกจากกันซึ่งเชื่อมโยงกันโดยใช้คีย์ต่างประเทศ[ 2 ] : 381 กระบวนการนี้เป็นขั้นตอนที่จำเป็นเมื่อย้ายข้อมูลจากฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ (หรือNoSQL ) เช่น ฐานข้อมูลที่ใช้ โมเดล แบบลำดับชั้นหรือแบบเอกสารไปยังฐานข้อมูลเชิงสัมพันธ์

ฐานข้อมูลต้องเป็นไปตามมาตรฐาน 1NF เพื่อให้เป็นไปตาม " รูปแบบมาตรฐาน " อื่นๆ เช่น2NFและ3NFซึ่งจะช่วยลดความซ้ำซ้อนและความผิดปกติ ประโยชน์อื่นๆ ของการนำ 1NF มาใช้ ได้แก่ การเพิ่มความเป็นอิสระและความยืดหยุ่นของข้อมูล (รวมถึงคุณสมบัติเช่น ความสัมพันธ์ แบบหลายต่อหลาย ) และการลดความซับซ้อนของพีชคณิตเชิงสัมพันธ์และภาษาการสอบถามที่จำเป็นในการอธิบายการดำเนินการบนฐานข้อมูล

Codd ถือว่า 1NF เป็นสิ่งจำเป็นสำหรับฐานข้อมูลเชิงสัมพันธ์ ในขณะที่รูปแบบปกติอื่นๆ เป็นเพียงแนวทางสำหรับการออกแบบฐานข้อมูล[ 3 ] : 439

พื้นหลัง

รูปแบบปกติแรก (First normal form) ได้รับการแนะนำในปี พ.ศ. 2513 โดยEdgar F. Coddในบทความของเขาเรื่อง "A relational model of data for large shared data banks" [ 2 ]แม้ว่าในตอนแรกจะเรียกง่ายๆ ว่า "normalization" หรือ "normal form" ก็ตาม ต่อมาได้มีการเปลี่ยนชื่อเป็น "first normal form" เมื่อ Codd ได้แนะนำรูปแบบปกติเพิ่มเติมในบทความของเขาเรื่อง "Further Normalization of the Data Base Relational Model" ในปี พ.ศ. 2514 [ 4 ]

แบบจำลองเชิงสัมพันธ์ถูกเสนอขึ้นเพื่อปรับปรุง ฐานข้อมูล แบบลำดับชั้นซึ่งแพร่หลายในขณะนั้น[ 2 ] : 377 ความแตกต่างที่สำคัญอยู่ที่วิธีการแสดงความสัมพันธ์ระหว่างระเบียน ในฐานข้อมูลแบบลำดับชั้น ความสัมพันธ์แบบหนึ่งต่อหลายจะถูกแสดงผ่านการบรรจุ: ระเบียนเดียวอาจมีชุดของระเบียน (เรียกว่ากลุ่มที่ซ้ำกัน) เป็นค่าแอตทริบิวต์ แต่ Codd โต้แย้งว่าลำดับชั้นไม่ยืดหยุ่นและแสดงออกได้ไม่เพียงพอสำหรับแบบจำลองข้อมูลที่ซับซ้อนกว่า ตัวอย่างเช่น ความสัมพันธ์แบบหลายต่อหลายไม่สามารถแสดงผ่านลำดับชั้นได้[ 2 ] : 378 ดังนั้นเขาจึงแนะนำให้กำจัดระเบียนที่ซ้อนกันและแสดงความสัมพันธ์ผ่านคีย์ต่างประเทศ แทน วิธีนี้ช่วยให้สามารถแสดงความสัมพันธ์ที่สมบูรณ์ยิ่งขึ้นได้ เนื่องจากระเบียนหนึ่งสามารถมีส่วนร่วมในความสัมพันธ์หลายรายการได้[ 2 ] : 378

การแปลฐานข้อมูลแบบลำดับชั้นโดยตรงเป็นความสัมพันธ์จะแสดงกลุ่มที่ซ้ำกันเป็นความสัมพันธ์แบบซ้อนกัน ดังนั้น การทำให้เป็นมาตรฐานจึงถูกกำหนดให้เป็นการกำจัดความสัมพันธ์แบบซ้อนกันและแสดงความสัมพันธ์แบบหนึ่งต่อหลายผ่านคีย์ต่างประเทศแทน[ 2 ] : 381

Codd แยกแยะระหว่างข้อมูล "อะตอมิก" และ "สารประกอบ" ข้อมูลอะตอมิก (หรือ "ไม่สามารถแยกย่อยได้") ประกอบด้วยประเภทพื้นฐาน เช่น ตัวเลขและสตริงโดยทั่วไปแล้ว ข้อมูลเหล่านี้ " ไม่สามารถแยกย่อยเป็นชิ้นเล็ก ๆ ได้โดยDBMS (ยกเว้นฟังก์ชันพิเศษบางอย่าง)" ข้อมูลสารประกอบประกอบด้วยโครงสร้าง เช่นความสัมพันธ์ (หรือตารางในSQL ) ซึ่งมีข้อมูลอะตอมิกหลายชิ้น และดังนั้น " สามารถแยกย่อยได้โดย DBMS" [ 5 ] : 6

ในความสัมพันธ์นั้น แต่ละแอตทริบิวต์ (หรือคอลัมน์ ) จะมีชุดของค่าที่อนุญาตซึ่งเรียกว่าโดเมน (เช่น โดเมนของแอตทริบิวต์ "ราคา" อาจเป็นชุดของตัวเลขที่ไม่เป็นลบที่มีทศนิยมได้ถึง 2 ตำแหน่ง) แต่ละทูเปิล (หรือแถว ) ในความสัมพันธ์จะมีค่าหนึ่งค่าต่อแอตทริบิวต์ และแต่ละค่าจะต้องเป็นองค์ประกอบในโดเมนของแอตทริบิวต์นั้น Codd แยกแยะแอตทริบิวต์ที่มี "โดเมนแบบง่าย" ซึ่งมีเฉพาะข้อมูลอะตอมิกออกจากแอตทริบิวต์ที่มี "โดเมนแบบไม่ง่าย" ซึ่งมีข้อมูลประกอบอย่างน้อยบางรูปแบบ[ 2 ] : 380 โดเมนแบบไม่ง่ายนำมาซึ่งความซับซ้อนเชิงโครงสร้างในระดับหนึ่งซึ่งอาจยากต่อการนำทาง การสอบถาม และการอัปเดต ตัวอย่างเช่น การดำเนินการข้ามความสัมพันธ์ที่ซ้อนกัน หลายชั้น (นั่นคือ ตารางที่มีตารางอื่นอยู่ภายใน) ซึ่งพบได้ในฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์บางประเภทจะ ใช้ เวลานาน

ดังนั้น รูปแบบปกติแรกจึงกำหนดให้โดเมนแอตทริบิวต์ทั้งหมดต้องเป็น โดเมน แบบง่ายกล่าวคือ ข้อมูลในแต่ละฟิลด์เป็นอะตอมิกและไม่มีความสัมพันธ์ใดที่มีแอตทริบิวต์ที่มีค่าเป็นความสัมพันธ์ Codd ระบุอย่างแม่นยำว่า ในแบบจำลองเชิงสัมพันธ์ "ค่าในโดเมนที่กำหนดความสัมพันธ์แต่ละรายการจะต้องเป็นอะตอมิกเมื่อเทียบกับ DBMS" [ 5 ] : 6 การทำให้เป็นปกติเป็น 1NF จึงเป็นกระบวนการกำจัดโดเมนที่ไม่ง่ายออกจากความสัมพันธ์ทั้งหมด

ตัวอย่าง

การออกแบบที่ละเมิด 1NF

ตารางแสดงรายการธุรกรรมบัตรเครดิตของลูกค้าตารางนี้ไม่สอดคล้องกับรูปแบบปกติขั้นที่หนึ่ง (First Normal Form) เนื่องจากลูกค้าแต่ละรายสอดคล้องกับกลุ่มธุรกรรมที่ซ้ำกัน การออกแบบเช่นนี้สามารถแสดงได้ในฐานข้อมูลแบบลำดับชั้นแต่ไม่สามารถแสดงได้ในฐานข้อมูล SQL เนื่องจาก SQL ไม่รองรับตารางซ้อนกัน

ลูกค้า
รหัสลูกค้าชื่อธุรกรรม
1อับราฮัม
รหัสธุรกรรมวันที่จำนวน
1289014 ตุลาคม 2546−87
1290415 ตุลาคม 2546-50
2ไอแซค
รหัสธุรกรรมวันที่จำนวน
1289814 ตุลาคม 2546−21
3เจคอบ
รหัสธุรกรรมวันที่จำนวน
1290715 ตุลาคม 2546−18
1492020 พฤศจิกายน 2546−70
1500327 พฤศจิกายน 2546−60

การประเมินข้อสงสัยใดๆ ที่เกี่ยวข้องกับธุรกรรมของลูกค้าโดยทั่วไปจะประกอบด้วยสองขั้นตอน:

  1. การแยกกลุ่มธุรกรรมของลูกค้าหนึ่งรายหรือมากกว่านั้น เพื่อให้สามารถตรวจสอบธุรกรรมแต่ละรายการในกลุ่มได้ และ
  2. ดึงผลลัพธ์การค้นหาจากผลลัพธ์ของขั้นตอนแรก

ตัวอย่างเช่น เพื่อหาผลรวมของจำนวนเงินทั้งหมดที่เกิดขึ้นในเดือนตุลาคม พ.ศ. 2546 สำหรับลูกค้าทั้งหมดระบบจัดการฐานข้อมูล (DMBS) จะต้องแยกข้อมูลในช่อง "ธุรกรรม" ของลูกค้าแต่ละรายก่อน จากนั้นจึงรวมจำนวนเงินของธุรกรรมแต่ละรายการที่ได้มา โดยที่วันที่ของธุรกรรมนั้นอยู่ในเดือนตุลาคม พ.ศ. 2546

การออกแบบที่สอดคล้องกับมาตรฐาน 1NF

Codd อธิบายว่าฐานข้อมูลแบบนี้สามารถลดความซับซ้อนเชิงโครงสร้างและเพิ่มความยืดหยุ่นได้โดยการแปลงให้เป็นฐานข้อมูลเชิงสัมพันธ์ในรูปแบบปกติแรก ในการทำให้ตารางเป็นไปตามรูปแบบปกติแรก จะต้องแยกแอตทริบิวต์ที่มีโดเมนที่ไม่ซับซ้อนออกเป็นความสัมพันธ์ที่แยกต่างหาก ความสัมพันธ์ที่แยกออกมาแต่ละรายการจะได้รับคีย์ต่างประเทศที่อ้างอิงถึงคีย์หลักของความสัมพันธ์ที่บรรจุอยู่แต่เดิม กระบวนการนี้สามารถนำไปใช้ซ้ำกับโดเมนที่ไม่ซับซ้อนที่ซ้อนกันหลายระดับ (เช่น โดเมนที่มีตารางอยู่ภายในตารางอยู่ภายในตาราง และอื่นๆ) [ 2 ] : 380–381

ในตัวอย่างนี้ CustomerID เป็นคีย์หลักของความสัมพันธ์ที่มีอยู่ และจะถูกเพิ่มเป็นคีย์ต่างประเทศในความสัมพันธ์ใหม่ด้วย:

ลูกค้า
รหัสลูกค้าชื่อ
1อับราฮัม
2ไอแซค
3เจคอบ
ธุรกรรม
รหัสลูกค้ารหัสธุรกรรมวันที่จำนวน
11289014 ตุลาคม 2546−87
11290415 ตุลาคม 2546-50
21289814 ตุลาคม 2546−21
31290715 ตุลาคม 2546−18
31492020 พฤศจิกายน 2546−70
31500327 พฤศจิกายน 2546−60

ในการออกแบบที่ปรับปรุงใหม่นี้ คีย์หลักคือ {CustomerID} ในความสัมพันธ์แรก และ {CustomerID, TransactionID} ในความสัมพันธ์ที่สอง

เนื่องจากตอนนี้มีตารางความสัมพันธ์ระดับบนสุดเพียงตารางเดียวที่รวบรวมธุรกรรมทั้งหมดไว้ การเรียกใช้คำสั่งค้นหาในฐานข้อมูลจึงง่ายขึ้น ตัวอย่างเช่น หากต้องการหาผลรวมของธุรกรรมทั้งหมดในเดือนตุลาคม ระบบจัดการฐานข้อมูล (DBMS) จะค้นหาแถวทั้งหมดที่มีวันที่อยู่ในเดือนตุลาคมและรวมค่าในฟิลด์จำนวนเงินเข้าด้วยกัน ค่าทั้งหมดสามารถเข้าถึงได้ง่ายจากระบบจัดการฐานข้อมูล ในขณะที่ก่อนหน้านี้ค่าบางค่าถูกฝังอยู่ในโครงสร้างระดับล่างที่ต้องจัดการเป็นพิเศษ ดังนั้น การออกแบบที่เป็นมาตรฐานจึงเหมาะสมกับการประมวลผลคำสั่งค้นหาทั่วไป ในขณะที่การออกแบบที่ไม่เป็นมาตรฐานนั้นไม่เหมาะสม

เป็นที่น่าสังเกตว่าการออกแบบที่ปรับปรุงใหม่นี้ยังตรงตามข้อกำหนดเพิ่มเติมสำหรับรูปแบบปกติที่สองและ ที่สาม อีก ด้วย

เหตุผล

การทำให้เป็นรูปแบบมาตรฐานที่ 1 (1NF) เป็นองค์ประกอบทางทฤษฎีที่สำคัญที่สุดในการเปลี่ยนฐานข้อมูลไปสู่รูปแบบเชิงสัมพันธ์การใช้ฐานข้อมูลเชิงสัมพันธ์ในรูปแบบ 1NF มีข้อดีหลายประการ:

  • ช่วยให้สามารถจัดเก็บข้อมูลในอาร์เรย์สองมิติ ปกติได้ การรองรับความสัมพันธ์แบบซ้อนกันจะต้องใช้โครงสร้างข้อมูลที่ซับซ้อนกว่า[ 2 ] : 381
  • วิธีการนี้ช่วยให้สามารถใช้ภาษาการสืบค้น ข้อมูลที่ง่ายกว่า เช่นSQLได้ เนื่องจากสามารถระบุรายการข้อมูลใดๆ ได้โดยใช้เพียงชื่อความสัมพันธ์ ชื่อแอตทริบิวต์ และคีย์เท่านั้น การจัดการกับรายการข้อมูลที่ซ้อนกันจะต้องใช้ภาษาที่ซับซ้อนกว่าซึ่งรองรับเส้นทางข้อมูลแบบลำดับชั้น
  • การแสดงความสัมพันธ์โดยใช้คีย์ต่างประเทศมีความยืดหยุ่นมากกว่าและช่วยให้สามารถแสดงคุณสมบัติต่างๆ เช่น ความสัมพันธ์ แบบหลายต่อหลายได้ในขณะที่แบบจำลองเชิงลำดับชั้นสามารถแสดงความสัมพันธ์ ได้เพียง แบบหนึ่งต่อหนึ่งหรือหนึ่งต่อหลายเท่านั้น
  • เนื่องจากการค้นหารายการข้อมูลไม่ได้เชื่อมโยงกับลำดับชั้นแบบพ่อ-ลูก ฐานข้อมูลในรูปแบบ 1NF จึงสร้างความเป็นอิสระของข้อมูล ได้มากขึ้น และมีความยืดหยุ่นต่อการเปลี่ยนแปลงโครงสร้างเมื่อเวลาผ่านไปได้ดีกว่า
  • จากมาตรฐาน 1NF สามารถทำการปรับให้เป็นมาตรฐานเพิ่มเติมได้ (เช่น2NFหรือ3NF ) ซึ่งจะช่วยลดความซ้ำซ้อนและความผิดปกติของข้อมูลได้

ข้อถกเถียงเกี่ยวกับค่าของสารประกอบ

มีการถกเถียงกันบ้างเกี่ยวกับขอบเขตที่ค่าประกอบหรือค่าซับซ้อนอื่นๆ นอกเหนือจากความสัมพันธ์ (เช่นอาร์เรย์หรือ ข้อมูล XML ) ได้รับอนุญาตใน 1NF Codd ระบุว่าความสัมพันธ์เป็นข้อมูลประกอบประเภทเดียวที่ได้รับอนุญาตภายในแบบจำลองเชิงสัมพันธ์ (หากไม่ใช่ในโดเมนแอตทริบิวต์) เนื่องจากข้อมูลประกอบประเภทเพิ่มเติมใดๆ จะเพิ่มความซับซ้อนโดยไม่เพิ่มพลัง อย่างไรก็ตาม แบบจำลองนี้อนุญาตให้ใช้ "ฟังก์ชันพิเศษบางอย่าง" เช่นSUBSTRINGการแยกส่วนค่าที่ถือว่าเป็นอะตอม[ 5 ] : 6,340

Hugh DarwenและChristopher J. Dateได้เสนอแนะว่าแนวคิดของ Codd เกี่ยวกับ "ค่าอะตอม" นั้นคลุมเครือ และความคลุมเครือนี้ทำให้เกิดความสับสนอย่างกว้างขวางเกี่ยวกับวิธีการทำความเข้าใจ 1NF [ 6 ] [ 7 ]โดยเฉพาะอย่างยิ่ง แนวคิดของค่าอะตอมในฐานะ "ค่าที่ไม่สามารถแยกย่อยได้" นั้นเป็นปัญหา เนื่องจากดูเหมือนว่าจะหมายความว่ามีประเภทข้อมูลอะตอมน้อยมาก หรืออาจไม่มีเลย:

  • ดูเหมือนว่า สตริงจะไม่ใช่หน่วยพื้นฐาน เนื่องจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) โดยทั่วไปจะมีตัวดำเนินการเพื่อแยกสตริงออกเป็นสตริงย่อย
  • ดูเหมือนว่า จำนวนจุดคงที่จะไม่เป็นจำนวนอะตอมิก เนื่องจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) โดยทั่วไปจะมีตัวดำเนินการเพื่อแยกจำนวนนั้นออกเป็นส่วนจำนวนเต็มและส่วนทศนิยม
  • ดูเหมือนว่า หมายเลขISBNจะไม่ใช่หน่วยพื้นฐานเพียงหน่วยเดียว เนื่องจากประกอบด้วยส่วนต่างๆ มากมาย รวมถึงกลุ่มการลงทะเบียนผู้ลงทะเบียนและองค์ประกอบด้านการเผยแพร่

Date แนะนำว่า "แนวคิดเรื่องอะตอมิกไม่มีความหมายที่แน่นอน ": [ 8 ] : 112 [ 9 ]ค่าหนึ่งอาจถือว่าเป็นอะตอมิกสำหรับบางวัตถุประสงค์ แต่อาจถือว่าเป็นการประกอบกันขององค์ประกอบพื้นฐานมากกว่าสำหรับวัตถุประสงค์อื่น หากยอมรับตำแหน่งนี้ 1NF ก็ไม่สามารถกำหนดได้โดยอ้างอิงถึงอะตอมิก คอลัมน์ที่มีประเภทข้อมูลใดๆ ก็ตามที่คิดได้ (ตั้งแต่สตริงและประเภทตัวเลขไปจนถึงอาร์เรย์และตาราง) จึงเป็นที่ยอมรับในตาราง 1NF แม้ว่าอาจจะไม่เป็นที่พึงปรารถนาเสมอไป – ตัวอย่างเช่น อาจเป็นที่พึงปรารถนาที่จะแยกคอลัมน์ CustomerName ออกเป็นสองคอลัมน์ คือ FirstName และ Surname

นิยามของ 1NF โดย Christopher J. Date

ตาม คำจำกัดความของ Christopher J. Dateตารางจะอยู่ในรูปแบบปกติขั้นแรกก็ต่อเมื่อ " มีความสอดคล้องกับความสัมพันธ์บางอย่าง" ซึ่งหมายความว่าต้องตรงตามเงื่อนไขห้าประการต่อไปนี้โดยเฉพาะ: [ 8 ] : 127–128

  1. ไม่มีการเรียงลำดับแถวจากบนลงล่างที่ตายตัว
  2. ไม่มีการเรียงลำดับคอลัมน์จากซ้ายไปขวาอย่างตายตัว
  3. ไม่มีแถวซ้ำกัน
  4. แต่ละฟิลด์ (หรือจุดตัดของแถวและคอลัมน์) จะมีค่าเพียงค่าเดียวจากโดเมนที่เกี่ยวข้องเท่านั้น และไม่มีค่าอื่นใดอีก
  5. คอลัมน์ทั้งหมดเป็นคอลัมน์ปกติ (กล่าวคือ แถวไม่มีส่วนประกอบที่ซ่อนอยู่ เช่น รหัสแถว รหัสวัตถุ หรือการประทับเวลาที่ซ่อนอยู่)

การละเมิดเงื่อนไขใดๆ เหล่านี้จะหมายความว่าตารางนั้นไม่ใช่ตารางเชิงสัมพันธ์โดยแท้จริง และด้วยเหตุนี้จึงไม่อยู่ในรูปแบบปกติขั้นที่หนึ่ง

นิยามของ 1NF นี้อนุญาตให้แอตทริบิวต์ที่มีค่าเป็นความสัมพันธ์ (ตารางภายในตาราง) ซึ่ง Date โต้แย้งว่ามีประโยชน์ในกรณีที่หายาก[ 8 ] : 121–126 ตัวอย่างของตาราง (หรือมุมมอง ) ที่ไม่ตรงตามนิยามของรูปแบบปกติแรกนี้ ได้แก่:

  • ตารางที่ไม่มีข้อจำกัดคีย์เฉพาะ (unique key constraint ) ตารางดังกล่าวจะสามารถรองรับแถวที่ซ้ำกันได้ ซึ่งเป็นการละเมิดเงื่อนไขข้อที่ 3
  • มุมมองที่มีคำจำกัดความบังคับให้ส่งคืนผลลัพธ์ตามลำดับที่เฉพาะเจาะจง ดังนั้นลำดับแถวจึงเป็นลักษณะที่สำคัญและมีความหมายของมุมมอง ซึ่งขัดกับเงื่อนไขข้อที่ 1 ทูเปิลในความสัมพันธ์ที่แท้จริงจะไม่เรียงลำดับซึ่งกันและกัน (มุมมองดังกล่าวไม่สามารถสร้างได้โดยใช้SQLที่สอดคล้องกับ มาตรฐาน SQL:2003 )
  • ตารางที่มี แอตทริบิวต์ ที่อนุญาตให้เป็นค่าว่างได้ อย่างน้อยหนึ่ง รายการ แอตทริบิวต์ที่อนุญาตให้เป็นค่าว่างได้จะถือเป็นการละเมิดเงื่อนไขข้อที่ 4 ซึ่งกำหนดให้ทุกคอลัมน์ต้องมีค่าเพียงค่าเดียวจากโดเมนของคอลัมน์นั้น แง่มุมนี้ของเงื่อนไขข้อที่ 4 เป็นที่ถกเถียงกัน มันถือเป็นการเปลี่ยนแปลงที่สำคัญจากวิสัยทัศน์ในภายหลังของ Codd เกี่ยวกับแบบจำลองเชิงสัมพันธ์ [ 10 ]ซึ่งได้กำหนดเงื่อนไขสำหรับค่าว่างไว้อย่างชัดเจน[ 11 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • Date, CJ, & Lorentzos, N., & Darwen, H. (2002). ข้อมูลเชิงเวลาและแบบจำลองเชิงสัมพันธ์ (ฉบับพิมพ์ครั้งที่ 1). Morgan Kaufmann. ISBN 1-55860-855-9.
  • Date, CJ (1999), An Introduction to Database Systems (ฉบับที่ 8). Addison-Wesley Longman. ISBN 0-321-19784-4.
  • Kent, W. (1983) คู่มือฉบับย่อเกี่ยวกับรูปแบบปกติห้าแบบในทฤษฎีฐานข้อมูลเชิงสัมพันธ์ , Communications of the ACM , เล่มที่ 26, หน้า 120–125
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=First_normal_form&oldid=1321123265 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รูปแบบปกติแรก

รูปแบบปกติขั้นที่หนึ่ง ( 1NF ) เป็นระดับพื้นฐานที่สุดของ การทำให้ฐานข้อมูลเป็นมาตรฐาน ซึ่งกำหนดโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวอังกฤษ Edgar F.

พื้นหลัง

รูปแบบปกติแรก (First normal form) ได้รับการแนะนำในปี พ.ศ. 2513 โดย Edgar F.

การออกแบบที่ละเมิด 1NF

ตารางแสดงรายการธุรกรรมบัตรเครดิตของลูกค้าตารางนี้ไม่สอดคล้องกับรูปแบบปกติขั้นที่หนึ่ง (First Normal Form) เนื่องจากลูกค้าแต่ละรายสอดคล้องกับกลุ่มธุรกรรมที่ซ้ำกัน การออกแบบเช่นนี้สามารถแสดงได้ใน ฐานข้อมูลแบบลำดับชั้น แต่ไม่สามารถแสดงได้ในฐานข้อมูล SQL...

การออกแบบที่สอดคล้องกับมาตรฐาน 1NF

Codd อธิบายว่าฐานข้อมูลแบบนี้สามารถลดความซับซ้อนเชิงโครงสร้างและเพิ่มความยืดหยุ่นได้โดยการแปลงให้เป็นฐานข้อมูลเชิงสัมพันธ์ในรูปแบบปกติแรก ในการทำให้ตารางเป็นไปตามรูปแบบปกติแรก จะต้องแยกแอตทริบิวต์ที่มีโดเมนที่ไม่ซับซ้อนออกเป็นความสัมพันธ์ที่แยกต่างหาก...