1 / 50

ครั้งที่ 7 การจัดการไฟล์ และความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล

ครั้งที่ 7 การจัดการไฟล์ และความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล. บรรยายโดย อาจารย์สายสุนนีย์ เจริญสุข. เนื้อหา. การทำ Normalization ขั้นตอนการทำ Normalization การสร้างและใช้งานฐานข้อมูล Access 2007. การจัดการเกี่ยวกับไฟล์ DriveListBOx, DirListBox และ FileListBox Rich Text Box

silvio
Télécharger la présentation

ครั้งที่ 7 การจัดการไฟล์ และความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ครั้งที่ 7การจัดการไฟล์ และความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล บรรยายโดย อาจารย์สายสุนนีย์ เจริญสุข

  2. เนื้อหา • การทำ Normalization • ขั้นตอนการทำ Normalization • การสร้างและใช้งานฐานข้อมูล Access 2007 • การจัดการเกี่ยวกับไฟล์ • DriveListBOx, DirListBox และ FileListBox • Rich Text Box • ประเภทของไฟล์ • Sequential File • Radom Access File • Binary File • พื้นฐานความรู้เบื้องต้นเรื่องฐานข้อมูล • ฐานข้อมูลคืออะไร • ความสำคัญของฐานข้อมูล • องค์ประกอบในการทำงานร่วมกับของฐานข้อมูล • รู้จักกับฐานข้อมูลเชิงสัมพันธ์(Relational Database)

  3. DriveListBox, DirListBoxและ FileListBox • กำหนดให้ปรากฎที่ ToolBox โดยคลิกขวาเลือก Choose Items และเลือกแท็บ .Net Framework Components แล้วเลือกเครื่องหมายเช็คที่ DriveListBox, DirListBoxและ FileListBox • DriveListBox คือ ออบเจ็กต์ที่ใช้เข้าถึงไดรฟ์ที่ต้องการ • DirListBox คือ ออบเจ็กต์ที่ใช้เข้าถึงโฟลเดอร์ภายในไดรฟ์ที่กำหนด • FileListBox ใช้แสดงไฟล์ที่มีอยู่ในไดเรอทอรีที่กำหนด • อีเวนต์ที่สำคัญของ Drive, Dir, File คือ SelectedIndexChange, SelectedValueChange : เมื่อมีการเปลี่ยนแปลงค่าที่เคยเลือกเอาไว้

  4. DriveListBox, DirListBoxและ FileListBox • พร็อปเพอร์ตี้ (Property) ที่สำคัญ • Drive : หมายถึงไดรฟ์ที่เลือก (สำหรับ DriveListBox) • Path : กำหนดไดเรกทรอรี (สำหรับ DirListBox, FileListBox) • Pattern : กำหนดส่วนขยายของไฟล์ (เช่น .exe, .bmp) (สำหรับ FileListBox) • FileName : ชื่อไฟล์พร้อมไดเรกทอรี (สำหรับ FileListBox)

  5. ตัวอย่าง

  6. Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChanged DirListBox2.Path = DriveListBox1.Drive End Sub Private Sub DirListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DirListBox2.SelectedIndexChanged FileListBox1.Path = DirListBox2.Path End Sub Private Sub FileListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileListBox1.SelectedIndexChanged Label2.Text = DirListBox2.Path & "\" & FileListBox1.FileName End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged FileListBox1.Pattern = TextBox1.Text End Sub

  7. DriveListBox, DirListBoxและ FileListBox • คำสั่งและฟังก์ชันที่น่าสนใจเกี่ยวกับการจัดการไฟล์ • Dir : เป็นการค้นหาว่าในไดเรกทอรีนั้นมีไฟล์ตามที่ระบุหรือไม่ ถ้ามีจะส่งชื่อไฟล์นั้นกลับมา หากไม่มีจะส่งเป็น “ “ ถ้าหากเราระบุเป็น Pattern เช่น *.exe จะส่งชื่อไฟล์แรกที่พบกลับมา รูปแบบ Dir “ไดเรกทรอรี” เช่น “C:\windows\”.exe” • ChDir : เปลี่ยนไปยัง Dir ที่กำหนด • MkDir : สร้าง dir ตามที่ระบุ • RmDir : ลบ dir ที่ระบุ • Kill : ลบไฟล์ที่ระบุ เช่น Kill(“c:\pic\test.jpg”) • FileLen : หาขนาดของไฟล์ในหน่วย Byte เช่น • x = FileLen(“C:\windows\readme.txt”) • FileDateTime : ตรวจสอบวันที่และเวลาที่มีการอัปเดตไฟล์ครั้งล่าสุด เช่น FileDateTime(“C:\Secrets\hacking.txt”) • FileCopy : เป็นการคัดลอกไฟล์จากต้นทางไปยังปลายทาง โดยใช้รูปแบบ FileCopy ต้นทาง,ปลายทาง เช่น FileCopy(“C:\mygirl\pic1.jpg”,”c:\Picture2”)

  8. Rich Text BOx • เป็น Text Box สารพัดประโยชน์ที่สามารถจัดการเกี่ยวกับ Text ได้อย่างหลากหลาย เช่น การเปิดไฟล์ แก้ไขไฟล์ บันทึกไฟล์ เป็นต้น • Method ที่สำคัญ • Find : ค้นหาข้อความใน RTF • GetLineFromCharIndex : ค้นหาบรรทัดที่มีข้อความที่กำหนด • LoadFile : โหลดไฟล์เข้ามาเปิดใน RichTextBox โดยกำหนดพาธ เช่น RichTextBox1.LoadFile(“c:\redme.rtf”) • SaveFile : บันทึกไฟล์ • Property ที่สำคัญ • HideSelection : จะซ่อนแถบสีของข้อความที่เลือกหรือไม่ • SelectedText : ข้อความที่เลือก • SelectionColor : สีของข้อความที่เลือก • SelectionFont : รูปแบบของตัวอักษรของข้อความที่เลือก • SelectionLength : ความยาวของข้อความที่เลือก • SelectionStart : จุดเริ่มต้นของข้อความที่เลือก

  9. ตัวอย่าง นำ RichTextBox,OpenFileDialog,SaveFileDialog,Button, TextBox มาวางดังรูป โดยกำหนด Name ของ Button เป็น BtnLoadFile, BtnSaveFile และ BtnFind ตามลำดับ

  10. Private Sub BtSaveFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtSaveFile.Click SaveFileDialog1.ShowDialog() RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End Sub Private Sub BtnLoadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoadFile.Click OpenFileDialog1.Filter = "Text File(*.txt | *.txt" OpenFileDialog1.ShowDialog() RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText) End Sub Private Sub BtFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtFind.Click Dim FoundPos As Integer Dim foundLine As Integer RichTextBox1.HideSelection = False If TextBox1.Text <> " " Then FoundPos = RichTextBox1.Find(TextBox1.Text) If FoundPos <> -1 Then foundLine = RichTextBox1.GetLineFromCharIndex(FoundPos) Else MsgBox("Word not found") End If End If End Sub

  11. ประเภทของไฟล์ • Sequential File : เป็นไฟล์ที่เก็บข้อมูลในรูปแบบ ASCIIในการเข้าถึงไฟล์ชนิดนี้จะต้องเริ่มจากต้นไฟล์ไปจนถึงสุดท้ายที่กำหนด โดยไม่สามารถเลือกอ่านเฉพาะช่วงที่ต้องการได้ • Random Access File : ไฟล์ชนิดนี้มีโครงสร้างเป็นเรคอร์ดที่มีขนาดคงที่และเหมือนกันทุกเรคอร์ดโดยเราสามารถเข้าถึงเรคอร์ดที่ต้องการได้ทันทีโดยไม่จำเป็นต้องเริ่มจากต้นไฟล์ แต่ไฟล์ชนิดนี้แม้ว่าขนาดของข้อมูลจะไม่เต็มความยาวของเรคอร์ด แต่เนื้อที่ในการจัดเก็บยังเท่าเดิม เช่น ความยาวเรคอร์ดเท่ากับ 100 แต่เราเก็บข้อมูลเพียง 30 ส่วนอี 70 จะเหลือเป็นพื้นที่ว่าง ทำให้ไฟล์ชนิดนี้ต้องใช้พื้นที่มากกว่าแบบแรก • Binary File : เป็นไฟล์ที่ใช้ระบบการจัดเก็บข้อมูลในรูปแบบพิเศษ โดยจะเก็บตามขนาดของข้อมูลจริงทำให้ไฟล์มีขนาดเล็กและสามารถทำงานได้เร็ว

  12. การหา File Number ด้วย FreeFile • การหาพื้นที่ว่างสำหรับเปิดไฟล์จะใช้คำสั่ง FreeFile โดยค่าที่คืนกลับมาจะเป็นพื้นที่แรกสุดที่หาพบ ลักษณะการกำหนดใช้งานคือ ตัวแปร = FreeFile() • ตัวอย่าง การเปิดไฟล์ สมมติไฟล์ที่ต้องการเปิดชื่อ TestFile • การเปิดไฟล์ Input Mode => FileOpen(1, “TestFile”,OpenMode.Input) • การเปิดไฟล์ใน Binary Mode โดยสามารถเขียนได้อย่างเดียว => • FileOpen(1,”TestFile”, OpenMode.Input) • การเปิดไฟล์ใน Random Mode โดยไฟล์บรรจุ records ของ structure Person • Structure Person • <VBFixedString(30)> Dim Name as string • dim ID as Integer • End Structure • ‘Count 30 for the string, plus 4 for the integer • FileOpen(1, “TestFile”,OpenMode.Random, , ,34)

  13. ตัวอย่าง การเปิดไฟล์ สมมติไฟล์ที่ต้องการเปิดชื่อ TestFile (ต่อ) • การเปิดไฟล์ใน Output Mode สามารถ read หรือ write ไฟล์ได้จากโพรเซสอื่นๆ • FileOpen(1, “TestFile”, OpenMode.Output, OpenShare.shared) • การเปิดไฟล์ใน Binary Mode ให้สามารถอ่านได้อย่างเดียว แต่ไม่สามารถอ่านได้จากโพรเซส์อื่น => • FileOpen(1,”TestFile”, OpenMode.Binary,OpenAccess.Read,OpenShare.LockRead) • การปิดไฟล์ : การปิดไฟล์เพื่อคืนพื้นที่ให้กับหน่วยความจำ และควรทำทุกครั้งหลัการปิด • ใช้งานไฟล์ โดยมีรูปแบบคือ FileClose(FileNumber)

  14. การหาขนาดและจุดสิ้นสุดการหาขนาดและจุดสิ้นสุด • การหาขนาดของไฟล์ที่เปิดใช้งานอยู่โดยใช้คำสั่ง LOF(FileNumber) • การหาจุดสิ้นสุดไฟล์ สำหรับการเปิดไฟล์ Mode Random หรือ Input โดยใช้คำสั่ง EOF(FileNumber) • ตัวอย่าง Private Sub btnLOF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLOF.Click Dim length As Integer FileOpen(1, "E:\data\eau\testfile.txt", OpenMode.Input) 'Open file length = LOF(1) 'Get length of file MsgBox(length) FileClose(1) 'close file End Sub

  15. Private Sub btnEOF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEOF.Click Dim textLine As String FileOpen(1, "E:\data\eau\testfile.txt", OpenMode.Input) 'Open file Do While Not EOF(1) 'Loop untill end of file textLine = LineInput(1) 'Read line into variable MsgBox(textLine) 'Print to the Message BOX. Loop FileClose(1) 'Close file End Sub

  16. Sequential File • การอ่านข้อมูลจาก Sequential File ถ้าต้องการอ่านข้อมูล ต้องนำข้อมูลจาก Memory ออกมาแสดงโดยใช้ฟังก์ชัน Input • รูปแบบ Input(FileNumer,Value) โดยที่ Value คือตัวแปร • รูปแบบ InputString(FileName,CharCount) โดยที่ CharCount หมายถึง จำนวน Character ที่ต้องการอ่าน ตัวอย่าง ให้เปิดโปรแกรม NotePad จากนั้นพิมพ์ข้ความ aaa, bbbb,ccccc,dddddd แล้วบันทึกที่ E:\Data\EAU\abcd.txt

  17. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim myChar As String Dim fiNum As Integer fiNum = FreeFile() FileOpen(fiNum, "E:/data/eau/abcd.txt", OpenMode.Input) 'Open File myChar = (InputString(fiNum, 3)) ' Get first three characters MsgBox(myChar) 'Print to the output window FileClose(fiNum) End Sub

  18. Sequential File • การเพิ่มข้อมูลลงใน Sequential File • จะเป็นการนำข้อมูลใหม่มาต่อท้ายข้อมูลเดิม โดยระบุใช้คำสั่ง Append ในโหมดเปิดไฟล์ • การเพิ่มข้อมูลลงไฟล์ใช้คำสั่ง Print หรือ PrintLine • รูปแบบ Print(FileName,data) โดยที่ data หมายถึง ข้อมูลที่จะเขียนลงไป ตัวอย่าง จะเพิ่มข้อมูลที่ E:\Data\EAU\abcd.txt

  19. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim myChar As String Dim fiNum As Integer fiNum = FreeFile() myChar = "Saisunee" FileOpen(fiNum, "E:/data/eau/abcd.txt", OpenMode.Append) PrintLine(fiNum, " ") 'new line Print(fiNum, myChar) FileClose(fiNum) End Sub

  20. Sequential File • การบันทึกข้อมูลลงในไฟล์ • จะเป็นการนำข้อมูลที่เราสร้างขึ้นเก็บไว้ในไฟล์ ถ้าหากมีไฟล์ชื่อนั้นอยู่ในไดเรกทอรีนั้นๆ อยู่แล้วจะเป็นการแทนที่เนื้อหาเดิม หากไม่มีจะสร้างไฟล์นั้นให้โดยอัตโนมัติ โดยการใช้โหมด Output ในตอนเปิดไฟล์แทนคำว่า Input • การเพิ่มข้อมูลลงไฟล์ใช้คำสั่ง Print หรือ PrintLine • รูปแบบ Print(FileName,data) โดยที่ data หมายถึง ข้อมูลที่จะเขียนลงไป ตัวอย่าง จะเพิ่มข้อมูลที่ E:\Data\EAU\abcd.txt

  21. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim myChar As String Dim fiNum As Integer fiNum = FreeFile() myChar = InputBox("Enter Text") FileOpen(fiNum, "E:/data/eau/TestSave.txt", OpenMode.Output) PrintLine(fiNum, " ") 'new line Print(fiNum, myChar) FileClose(fiNum) End Sub

  22. Random Access File • การสร้าง Random Access File • ใช้โหมด Random ในขั้นตอนการเปิดไฟล์ และใช้คำสั่ง FilePut ในการบันทึกข้อมูล • รูปแบบ FilePut(FileNumber,recorData,recordNumber) โดยที่ recordData หมายถึง ข้อมูลของเรคอร์ดที่ต้องการ recordNumber หมายถึง หมายเลขเรคอร์ดที่ต้องการบันทึก • ในการกำหนดขนาดของข้อมูลที่จะใส่ลงในแต่ละเรคอร์ด มักกำหนดตัวแปรแบบ Structure เนื่องจากสามารถกำหนดความยาวของข้อมูลได้ ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์

  23. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim i, x As Integer Dim rec As myRecord i = FreeFile() FileOpen(i, "E:/data/eau/product.txt", OpenMode.Random, , , Len(rec)) For x = 1 To 5 rec.ID = x rec.Product = "Product -" & x rec.Price = x * 100 rec.Nxt = vbCrLf FilePut(i, rec, x) Next x FileClose(i) End Sub

  24. Random Access File • การอ่านข้อมูลจาก Random Access File • ใช้คำสั่ง FileGet • รูปแบบ FileGet(FileNumber,recorData,recordNumber) โดยที่ recordData หมายถึง ข้อมูลของเรคอร์ดที่ต้องการ recordNumber หมายถึง หมายเลขเรคอร์ดที่ต้องการบันทึก ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์

  25. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i, x As Integer Dim rec As myRecord i = FreeFile() FileOpen(i, "E:/data/eau/product.txt", OpenMode.Random, , , Len(rec)) x = TextBox1.Text FileGet(i, rec, x) TextBox2.Text = rec.ID TextBox3.Text = rec.Product TextBox4.Text = rec.Price FileClose(i) End Sub

  26. Binary File • การเขียนข้อมูลแบบ Binary File • ใช้คำสั่ง FilePut • รูปแบบ FilePut(FileNumber, Data,Position) โดยที่ Position หมายถึง ตำแหน่งที่ต้องการใส่ข้อมูลลงไป • รูปแบบ FileGet(FileNumber, Data,Position) โดยที่ Position อาจหาได้โดยการใช้ฟังก์ชัน Seek(FillNumber) เช่น Pos = Seek(1) ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์

  27. Private Sub BtnAddData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim pos, free As Integer Dim Myrecord As Record free = FreeFile() 'Open file for binary file FileOpen(free, "E:/data/eau/products2.txt", OpenMode.Binary) Myrecord.ID = TxtID.Text Myrecord.Product = TxtProduct.Text Myrecord.Price = TxtPrice.Text Myrecord.Nxt = vbCrLf 'New Line pos = LOF(1) + 1 FilePut(free, Myrecord, CInt(pos)) ‘ Write Data FileClose(free) TxtID.Text = " " TxtProduct.Text = " " TxtPrice.Text = "“ End Sub

  28. Private Sub BtnReadData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnReadData.Click Dim i, free As Integer Dim str As String Dim Myrecord(5) As Record str = " " free = FreeFile() FileOpen(free, "E:/data/eau/products2.txt", OpenMode.Binary) 'Open binary For i = 1 To 5 FileGet(free, Myrecord(i)) 'read each record and keep in myrecord str += Myrecord(i).ID & " " & Myrecord(i).Product & " " & Myrecord(i).Price & vbCrLf Next MsgBox(str) FileClose(free) End Sub

  29. ฐานข้อมูลคืออะไร • ฐานข้อมูล คือ: กลุ่มข้อมูลที่มีความสัมพันธ์กันและถูกเก็บรวบรวมไว้ในที่เดียวกันอย่างเป็นระบบ เพื่อนำไปใช้ในวัตถุประสงค์อย่างใดอย่างหนึ่งโดยกลุ่มผู้ใช้ตั้งแต่หนึ่งกลุ่มขึ้นไป • ข้อมูล (Data): ข้อเท็จจริงต่างๆ (real facts) ที่เกี่ยวข้องหรือแสดงคุณลักษณะของบุคคล สิ่งของ สถานที่ หรือเหตุการณ์ใดๆ ที่เป็นได้ทั้งตัวเลขเช่น ราคา ปริมาณ ส่วนสูง น้ำหนัก ระยะทาง รหัสวิชา เกรดเฉลี่ย และข้อเท็จจริงที่ไม่ใช่ตัวเลข เช่น ชื่อ นามสกุล ที่อยู่ ชื่อสินค้า ข้อความ รูปภาพ หรืออื่นๆ เป็นต้น

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

  31. โครงสร้างข้อมูล • บิต(Bit) ย่อมาจาก Binary digit เป็นหน่วยข้อมูลที่เล็กที่สุด แทนด้วยเลขฐานสอง (0 หรือ 1 ) • ไบต์(Byte) คือ กลุ่มของบิตที่แทนตัวอักษร ตัวเลข หรือสัญลักษณ์พิเศษที่นำมารวมกันแล้วมีความหมาย เช่น ฟิลด์ชื่อสินค้า เก็บกลุ่มตัวอักษรที่แสดงชื่อสินค้า ฟิล์ราคาสินค้า เก็บกลุ่มตัวเลขที่แสดงราคาสินค้าต่อหน่วย เป็นต้น • เรคอร์ด (Record) หรือระเบียนข้อมูล ประกอบด้วยกลุ่มของฟิลด์ที่มีความสัมพันธ์กัน เช่น เรคอร์ดพนักงานจะมีฟิลด์รหัสพนักงาน ชื่อ นามสกุล แผนก ตำแหน่ง สถานภาพสมรส วันเข้าทำงาน ที่อยู่ และอื่นๆ โดย 1 เรคอร์ดจะเก็บข้อมูลพนักงาน 1 คน ในฟิลด์เดียวกันของทุกๆเรคอร์ดจะต้องเก็บข้อมูลชนิดเดียวกัน เช่น ฟิลด์ชื่อพนักงาน • ไฟล์ (File) หรือแฟ้มข้อมูล คือกลุ่มเรคอร์ดหลายๆเรคอร์ดที่เก็บข้อมูลซึ่งเป็นเรื่องเดียวกัน เช่น ไฟล์ข้อมูลพนักงาน ไฟล์ข้อมูลลูกค้า ไฟล์ข้อมูลการสั่งซื้อสินค้า ไฟล์ข้อมูลสินค้า เป็นต้น

  32. ตัวอย่าง ไฟล์ข้อมูลพนักงานของบริษัทแห่งหนึ่ง ชื่อฟิลด์ (Field Name) ฟิลด์ (Field) เรคอร์ด (Record)

  33. ไฟล์ข้อมูลพนักงาน ความสำคัญของฐานข้อมูล ไฟล์ข้อมูลการทำงานล่วงเวลา โปรแกรม Personnel ไฟล์ข้อมูลขาด/ลา/มาสาย แผนกบุคคล ไฟล์ข้อมูลรายได้/รายจ่าย โปรแกรม Payroll ไฟล์ข้อมูลคำนวณภาษี ไฟล์ข้อมูลพนักงานขาย ไฟล์ข้อมูลลูกค้า โปรแกรม Sales Analysis & Evaluation แผนกตลาด ไฟล์ข้อมูลการสั่งซื้อ ไฟล์ข้อมูลการส่งสินค้า ไฟล์ข้อมูลสินค้าคงคลัง ไฟล์ข้อมูลผู้ขาย แผนกจัดซื้อ โปรแกรม Inventory Control ไฟล์ข้อมูลจัดซื้อ ไฟล์ข้อมูลเบิกจ่ายสินค้า ไฟล์ข้อมูลสินค้าคงคลัง

  34. ไฟล์ข้อมูลพนักงาน องค์ประกอบในการทำงานร่วมกับฐานข้อมูล ไฟล์ข้อมูลการทำงานล่วงเวลา โปรแกรม Personnel ไฟล์ข้อมูลขาด/ลา/มาสาย แผนกบุคคล ไฟล์ข้อมูลรายได้/รายจ่าย โปรแกรม Payroll ไฟล์ข้อมูลคำนวณภาษี DBMS ไฟล์ข้อมูลพนักงานขาย ไฟล์ข้อมูลลูกค้า โปรแกรม Sales Analysis & Evaluation แผนกตลาด ไฟล์ข้อมูลการสั่งซื้อ ไฟล์ข้อมูลการส่งสินค้า ไฟล์ข้อมูลสินค้าคงคลัง ไฟล์ข้อมูลผู้ขาย แผนกจัดซื้อ โปรแกรม Inventory Control ไฟล์ข้อมูลจัดซื้อ ไฟล์ข้อมูลเบิกจ่ายสินค้า ไฟล์ข้อมูลสินค้าคงคลัง

  35. Table ลูกค้า รู้จักกับฐานข้อมูลเชิงสัมพันธ์ (Relational Database) Table สินค้า Table การสั่งซื้อ

  36. ชนิดของความสัมพันธ์ระหว่างตารางชนิดของความสัมพันธ์ระหว่างตาราง • ความสัมพันธ์ของข้อมูลรหว่างตาราง สามารถแยกออกได้ 3 ชนิดคือ • One-To-One : ข้อมูล 1 เร็คคอร์ดที่อยู่ในตารางหนึ่งมีความสัมพันธ์หรือเชื่อมโยงกับข้อมูลที่อยู่ในอีกตารางหนึ่ง โดยที่สามารถอ้างอิงได้เพียง 1 เร็คคอร์ดเท่านั้น เช่น นักศึกษา 1 คน มีรหัสประจำตัวได้ 1 หมายเลข ในทางกลับกันรหัสประจำตัวแต่ละหมายเลขสามารถอ้างอิงนักศึกษาได้ 1 คนเท่านั้น • One-To-Many : ข้อมูล 1 เร็คคอร์ดที่อยู่ในตารางหนึ่งมีความสัมพันธ์หรือเชื่อมโยงกับข้อมูลที่อยู่ในอีกตารางหนึ่ง โดยที่สามารถอ้างอิงได้มากกว่า 1 เร็คคอร์ด เช่น มหาวิทยาลัยมีนักศึกษาได้หลายคนในทางกลับกันมีนักศึกษาหลายคนศึกษาในมหาวิทยาลัยเดียวกัน • Many-To-Many : ข้อมูลหลายเร็คคอร์ดที่อยู่ในตารางหนึ่งมีความสัมพันธ์หรือเชื่อมโยงกับข้อมูลที่อยู่ในอีกตารางหนึ่ง โดยที่สามารถอ้างอิงข้อมูลได้มากกว่า 1 เร็คคอร์ด เช่น นักศึกษา 1 คนลงทะเบียนได้หลายวิชา และแต่ละวิชามีนักศึกษาลงทะเบียนได้หลายคนเช่นกัน

  37. Normalization • Normalization : ขั้นตอนหรือกระบวนการที่ใช้สำหรับจัดระเบียบ,สจัดรูปแบบ,จัดโครงสร้าง, ลดความซ้ำซ้อนของข้อมูลที่คุณจัดเก็บในแต่ละตาราง เพื่อให้ข้อมูลที่เก็บอยู่มีความน่าเชื่อถือไม่ขัดแย้งกันเอง • การทำ Normalizaton กับฐานข้อมูล เป็นการแบ่งตารางออกเป็นตารางย่อยๆ ตารางที่แบ่งย่อยออกมาจะถูกเรียกเป็นระดับๆ ว่า Normal Form มีทั้งหมด 5ระดับคือ First Normal Form(1NF) ไปจนถึง 5NF แล้วแต่ว่าฐานข้อมูลมีขอบเขตการใช้งานและขนาดของฐานข้อมูลมากเท่าใด เงื่อนไขการทำงานของระบบ • การทำ Normalization อีกวิธีเรียกว่า BCNF (Boyce-Codd Normal Form) อาจเรียกวิธีลัดในการทำให้ตารางอยู่ในระดับ 3NF โดยไม่ตามลำดับ 1NF ไปจนถึง 3NF

  38. จุดประสงค์ในการทำ Normalization • ควบคุมความถูกต้องของข้อมูล : ป้องกันไม่ให้ข้อมูลขัดแย้งกันเอง เช่น ตารางข้อมูลลูกค้ากับตารางขายสินค้า สมมติว่า ลูกค้าเปลี่ยนชื่อ-นามสกุล ส่งผลให้ข้อมูลในตารางลูกค้ากับตารางขายสินค้าต้องเปลี่ยนไปทั้ง 2 ตาราง • ควบคุมและจัดการข้อมูลได้ง่าย : สามารถปรับปรุง แก้ไข และเพิ่มเติมข้อมูลในฐานข้อมูลของคุณโดยที่มีขั้นตอนเท่าที่จำเป็นเท่านั้น เพื่อให้เกิดประสิทธิภาพในการทำงานของระบบมากที่สุดเช่น สมมติว่า บริษัทต้องการเพิ่มเติมรายการสินค้าที่ต้องการขาย ควรที่จะเกี่ยวข้องกับตารางสินค้าเท่านั้น ไม่ควรไปเกี่ยวข้องกับตารางอื่นๆ ในฐานข้อมูล ไม่ใช่ว่าต้องการเพิ่มรายการสินค้ารายการเดียวแต่ต้องไปแก้ไข 5 ตาราง 10 ตาราง หรือพนักงานย้ายแผนกแต่ต้องไปแก้ไขตารางอื่นอีกมากมาย เป็นต้น

  39. ตัวอย่าง

  40. ขั้นตอนแรก

  41. ขั้นที่สอง • ในขั้นตอนนี้ต้องแก้ไขให้ตาราง TranID แสดงข้อมูลว่า นักศึกษาคนใดลงทะเบียนวิชาใดบ้าง ซึ่งเป็นข้อมูลของตารางเดิมที่มีอยู่ก่อนการแก้ไข ส่วนตาราง Student และตาราง Major ใช้ได้แล้ว มีเหตุผลคือ • ทราบมหาวิทยาลัยนี้เปิดสอนกี่สาขา โดยดูจากตาราง Major • ถ้ามีนักศึกษาใหม่เพิ่มเข้ามา จะเพิ่มชื่อที่ตาราง Student เพียงตารางเดียว • ถ้านักศึกษาต้องการเปลี่ยนชื่อ-นามสกุล หรือเปลี่ยนสาขา คุณก็สามารถแก้ไขที่ตาราง Student เดียวเท่านั้น • ข้อเสียของตาราง TranID มีดังนี้ • ข้อมูลที่อยู่ในเร็คคอร์ดจะมีค่าซ้ำซ้อนเท่ากับจำนวนนักศึกษาที่ลงทะเบียน ซึ่งจะเหมือนกับตาราง Student เดิมในตอนแรก และถ้าในภายหลังนักศึกษาต้องการลงทะเบียนเรียนเพิ่มทุกคน จะเกิดความซ้ำซ้อนเพิ่มมากขึ้นไปอีก • ถ้าต้องการเปิดสอนวิชาใหม่ ไม่สามารถเพิ่มได้เพราะว่า เมื่อเพิ่มเข้ามา 10 วิชา จะไปเพิ่มรหัสนักศึกษา 10 หมายเลข ดังนั้นฟิวด์ StudentID กับ CourseIDไม่ควรอยู่ด้วยกัน

  42. ขั้นที่สอง

  43. ขั้นที่สาม • ในขั้นตอนนี้พิจารณาว่าในใบลงทะเบียนควรจะมีข้อมูลอะไรบ้าง ซึ่งควรจะมีใบลงทะเบียน , รหัสนักศึกษา, รหัสวิชา, ชื่อวิชา และหน่วยกิตของแต่ละวิชา ดังตัวอย่าง

  44. ขั้นที่สาม

  45. แบบฝึกหัดท้ายบท ข้อที่ 1 จงออกแบบฐานข้อมูลของระบบสารสนเทศที่แต่ละกลุ่มได้ยื่นหัวข้อไว้ โดยให้ทำการ Normalization ด้วย

  46. จบครั้งที่ 7

More Related