ครั้งที่
Download
1 / 50

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


  • 179 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

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


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

บรรยายโดย อาจารย์สายสุนนีย์ เจริญสุข


เนื้อหา

  • การทำ Normalization

  • ขั้นตอนการทำ Normalization

  • การสร้างและใช้งานฐานข้อมูล Access 2007

    • การจัดการเกี่ยวกับไฟล์

      • DriveListBOx, DirListBox และ FileListBox

      • Rich Text Box

      • ประเภทของไฟล์

      • Sequential File

      • Radom Access File

      • Binary File

    • พื้นฐานความรู้เบื้องต้นเรื่องฐานข้อมูล

      • ฐานข้อมูลคืออะไร

      • ความสำคัญของฐานข้อมูล

      • องค์ประกอบในการทำงานร่วมกับของฐานข้อมูล

      • รู้จักกับฐานข้อมูลเชิงสัมพันธ์(Relational Database)


    DriveListBox, DirListBoxและ FileListBox

    • กำหนดให้ปรากฎที่ ToolBox โดยคลิกขวาเลือก Choose Items และเลือกแท็บ .Net Framework Components แล้วเลือกเครื่องหมายเช็คที่ DriveListBox, DirListBoxและ FileListBox

    • DriveListBox คือ ออบเจ็กต์ที่ใช้เข้าถึงไดรฟ์ที่ต้องการ

    • DirListBox คือ ออบเจ็กต์ที่ใช้เข้าถึงโฟลเดอร์ภายในไดรฟ์ที่กำหนด

    • FileListBox ใช้แสดงไฟล์ที่มีอยู่ในไดเรอทอรีที่กำหนด

    • อีเวนต์ที่สำคัญของ Drive, Dir, File คือ SelectedIndexChange, SelectedValueChange : เมื่อมีการเปลี่ยนแปลงค่าที่เคยเลือกเอาไว้


    DriveListBox, DirListBoxและ FileListBox

    • พร็อปเพอร์ตี้ (Property) ที่สำคัญ

      • Drive : หมายถึงไดรฟ์ที่เลือก (สำหรับ DriveListBox)

      • Path : กำหนดไดเรกทรอรี (สำหรับ DirListBox, FileListBox)

      • Pattern : กำหนดส่วนขยายของไฟล์ (เช่น .exe, .bmp) (สำหรับ FileListBox)

      • FileName : ชื่อไฟล์พร้อมไดเรกทอรี (สำหรับ FileListBox)



    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


    DriveListBox As System.Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChanged, 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”)


    Rich Text As System.Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChangedBOx

    • เป็น Text Box สารพัดประโยชน์ที่สามารถจัดการเกี่ยวกับ Text ได้อย่างหลากหลาย เช่น การเปิดไฟล์ แก้ไขไฟล์ บันทึกไฟล์ เป็นต้น

    • Method ที่สำคัญ

      • Find : ค้นหาข้อความใน RTF

      • GetLineFromCharIndex : ค้นหาบรรทัดที่มีข้อความที่กำหนด

      • LoadFile : โหลดไฟล์เข้ามาเปิดใน RichTextBox โดยกำหนดพาธ เช่น RichTextBox1.LoadFile(“c:\redme.rtf”)

      • SaveFile : บันทึกไฟล์

    • Property ที่สำคัญ

      • HideSelection : จะซ่อนแถบสีของข้อความที่เลือกหรือไม่

      • SelectedText : ข้อความที่เลือก

      • SelectionColor : สีของข้อความที่เลือก

      • SelectionFont : รูปแบบของตัวอักษรของข้อความที่เลือก

      • SelectionLength : ความยาวของข้อความที่เลือก

      • SelectionStart : จุดเริ่มต้นของข้อความที่เลือก


    ตัวอย่าง As System.Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChanged

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


    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


    ประเภทของไฟล์ ByVal e As System.EventArgs) Handles BtSaveFile.Click

    • Sequential File : เป็นไฟล์ที่เก็บข้อมูลในรูปแบบ ASCIIในการเข้าถึงไฟล์ชนิดนี้จะต้องเริ่มจากต้นไฟล์ไปจนถึงสุดท้ายที่กำหนด โดยไม่สามารถเลือกอ่านเฉพาะช่วงที่ต้องการได้

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

    • Binary File : เป็นไฟล์ที่ใช้ระบบการจัดเก็บข้อมูลในรูปแบบพิเศษ โดยจะเก็บตามขนาดของข้อมูลจริงทำให้ไฟล์มีขนาดเล็กและสามารถทำงานได้เร็ว


    การหา ByVal e As System.EventArgs) Handles BtSaveFile.ClickFile 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)


    • ตัวอย่าง การเปิดไฟล์ สมมติไฟล์ที่ต้องการเปิดชื่อ 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)


    • การหาขนาดและจุดสิ้นสุดการหาขนาดและจุดสิ้นสุด

      • การหาขนาดของไฟล์ที่เปิดใช้งานอยู่โดยใช้คำสั่ง 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


    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


    Sequential file
    Sequential File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การอ่านข้อมูลจาก Sequential File

      ถ้าต้องการอ่านข้อมูล ต้องนำข้อมูลจาก Memory ออกมาแสดงโดยใช้ฟังก์ชัน Input

      • รูปแบบ Input(FileNumer,Value) โดยที่ Value คือตัวแปร

      • รูปแบบ InputString(FileName,CharCount)

        โดยที่ CharCount หมายถึง จำนวน Character ที่ต้องการอ่าน

        ตัวอย่าง ให้เปิดโปรแกรม NotePad จากนั้นพิมพ์ข้ความ aaa, bbbb,ccccc,dddddd แล้วบันทึกที่ E:\Data\EAU\abcd.txt


    Private Sub Form1_Click( ByVal e As System.EventArgs) Handles btnEOF.ClickByVal 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


    Sequential file1
    Sequential File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การเพิ่มข้อมูลลงใน Sequential File

      • จะเป็นการนำข้อมูลใหม่มาต่อท้ายข้อมูลเดิม โดยระบุใช้คำสั่ง Append ในโหมดเปิดไฟล์

      • การเพิ่มข้อมูลลงไฟล์ใช้คำสั่ง Print หรือ PrintLine

      • รูปแบบ Print(FileName,data)

        โดยที่ data หมายถึง ข้อมูลที่จะเขียนลงไป

        ตัวอย่าง จะเพิ่มข้อมูลที่ E:\Data\EAU\abcd.txt


    Private Sub Form1_Click( ByVal e As System.EventArgs) Handles btnEOF.ClickByVal 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


    Sequential file2
    Sequential File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การบันทึกข้อมูลลงในไฟล์

      • จะเป็นการนำข้อมูลที่เราสร้างขึ้นเก็บไว้ในไฟล์ ถ้าหากมีไฟล์ชื่อนั้นอยู่ในไดเรกทอรีนั้นๆ อยู่แล้วจะเป็นการแทนที่เนื้อหาเดิม หากไม่มีจะสร้างไฟล์นั้นให้โดยอัตโนมัติ โดยการใช้โหมด Output ในตอนเปิดไฟล์แทนคำว่า Input

      • การเพิ่มข้อมูลลงไฟล์ใช้คำสั่ง Print หรือ PrintLine

      • รูปแบบ Print(FileName,data)

        โดยที่ data หมายถึง ข้อมูลที่จะเขียนลงไป

        ตัวอย่าง จะเพิ่มข้อมูลที่ E:\Data\EAU\abcd.txt


    Private Sub Form1_Click( ByVal e As System.EventArgs) Handles btnEOF.ClickByVal 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


    Random access file
    Random Access File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การสร้าง Random Access File

      • ใช้โหมด Random ในขั้นตอนการเปิดไฟล์ และใช้คำสั่ง FilePut ในการบันทึกข้อมูล

      • รูปแบบ FilePut(FileNumber,recorData,recordNumber)

        โดยที่ recordData หมายถึง ข้อมูลของเรคอร์ดที่ต้องการ

        recordNumber หมายถึง หมายเลขเรคอร์ดที่ต้องการบันทึก

      • ในการกำหนดขนาดของข้อมูลที่จะใส่ลงในแต่ละเรคอร์ด มักกำหนดตัวแปรแบบ Structure เนื่องจากสามารถกำหนดความยาวของข้อมูลได้

        ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์


    Private Sub Form1_Click( ByVal e As System.EventArgs) Handles btnEOF.ClickByVal 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


    Random access file1
    Random Access File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การอ่านข้อมูลจาก Random Access File

      • ใช้คำสั่ง FileGet

      • รูปแบบ FileGet(FileNumber,recorData,recordNumber)

        โดยที่ recordData หมายถึง ข้อมูลของเรคอร์ดที่ต้องการ

        recordNumber หมายถึง หมายเลขเรคอร์ดที่ต้องการบันทึก

        ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์


    Private Sub Button1_Click( ByVal e As System.EventArgs) Handles btnEOF.ClickByVal 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


    Binary file
    Binary File ByVal e As System.EventArgs) Handles btnEOF.Click

    • การเขียนข้อมูลแบบ Binary File

      • ใช้คำสั่ง FilePut

      • รูปแบบ FilePut(FileNumber, Data,Position)

        โดยที่ Position หมายถึง ตำแหน่งที่ต้องการใส่ข้อมูลลงไป

      • รูปแบบ FileGet(FileNumber, Data,Position)

        โดยที่ Position อาจหาได้โดยการใช้ฟังก์ชัน Seek(FillNumber) เช่น Pos = Seek(1)

        ตัวอย่าง เพิ่มโมดูลเข้ามาในโปรเจ็กต์


    Private Sub ByVal e As System.EventArgs) Handles btnEOF.ClickBtnAddData_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


    Private Sub ByVal e As System.EventArgs) Handles btnEOF.ClickBtnReadData_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


    ฐานข้อมูลคืออะไร ByVal e As System.EventArgs) Handles btnEOF.Click

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

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


    • สรุปลักษณะที่สำคัญของฐานข้อมูลมีดังนี้สรุปลักษณะที่สำคัญของฐานข้อมูลมีดังนี้

      • ข้อมูลทั้งหมดจะต้องมีความสัมพันธ์กันและถูกเก็บรวบรวมไว้ด้วยกัน

      • ต้องมีการจัดการข้อมูลน้นอย่างเป็นระบบ

      • ต้องสามารถนำข้อมูลนั้นไปใช้ได้ตามต้องการ

    • ตัวอย่าง

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

      • ข้อมูลในบริษัท เช่น ข้อมูลพนักงาน ข้อมูลลูกค้า ข้อมูลสินค้า ข้อมูลการสั่งซื้อสินค้าของลูกค้าแต่ละราย

      • ข้อมูลทะเบียนนักศึกษา เช่น รหัสประจำตัว ชื่อ-นามสกุล ที่อยู่ รหัสคณะ รหัสสาขาวิชา และอื่นๆที่เกี่ยวข้อง

      • ข้อมูลทะเบียนสำมะโนประชากรของประเทศ และอื่นๆ เป็นต้น


    โครงสร้างข้อมูลสรุปลักษณะที่สำคัญของฐานข้อมูลมีดังนี้

    • บิต(Bit) ย่อมาจาก Binary digit เป็นหน่วยข้อมูลที่เล็กที่สุด แทนด้วยเลขฐานสอง (0 หรือ 1 )

    • ไบต์(Byte) คือ กลุ่มของบิตที่แทนตัวอักษร ตัวเลข หรือสัญลักษณ์พิเศษที่นำมารวมกันแล้วมีความหมาย เช่น ฟิลด์ชื่อสินค้า เก็บกลุ่มตัวอักษรที่แสดงชื่อสินค้า ฟิล์ราคาสินค้า เก็บกลุ่มตัวเลขที่แสดงราคาสินค้าต่อหน่วย เป็นต้น

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

    • ไฟล์ (File) หรือแฟ้มข้อมูล คือกลุ่มเรคอร์ดหลายๆเรคอร์ดที่เก็บข้อมูลซึ่งเป็นเรื่องเดียวกัน เช่น ไฟล์ข้อมูลพนักงาน ไฟล์ข้อมูลลูกค้า ไฟล์ข้อมูลการสั่งซื้อสินค้า ไฟล์ข้อมูลสินค้า เป็นต้น


    ตัวอย่าง ไฟล์ข้อมูลพนักงานของบริษัทแห่งหนึ่ง

    ชื่อฟิลด์ (Field Name)

    ฟิลด์ (Field)

    เรคอร์ด (Record)


    ไฟล์ข้อมูลพนักงาน ไฟล์ข้อมูลพนักงานของบริษัทแห่งหนึ่ง

    ความสำคัญของฐานข้อมูล

    ไฟล์ข้อมูลการทำงานล่วงเวลา

    โปรแกรม Personnel

    ไฟล์ข้อมูลขาด/ลา/มาสาย

    แผนกบุคคล

    ไฟล์ข้อมูลรายได้/รายจ่าย

    โปรแกรม Payroll

    ไฟล์ข้อมูลคำนวณภาษี

    ไฟล์ข้อมูลพนักงานขาย

    ไฟล์ข้อมูลลูกค้า

    โปรแกรม Sales Analysis &

    Evaluation

    แผนกตลาด

    ไฟล์ข้อมูลการสั่งซื้อ

    ไฟล์ข้อมูลการส่งสินค้า

    ไฟล์ข้อมูลสินค้าคงคลัง

    ไฟล์ข้อมูลผู้ขาย

    แผนกจัดซื้อ

    โปรแกรม Inventory Control

    ไฟล์ข้อมูลจัดซื้อ

    ไฟล์ข้อมูลเบิกจ่ายสินค้า

    ไฟล์ข้อมูลสินค้าคงคลัง


    ไฟล์ข้อมูลพนักงาน ไฟล์ข้อมูลพนักงานของบริษัทแห่งหนึ่ง

    องค์ประกอบในการทำงานร่วมกับฐานข้อมูล

    ไฟล์ข้อมูลการทำงานล่วงเวลา

    โปรแกรม Personnel

    ไฟล์ข้อมูลขาด/ลา/มาสาย

    แผนกบุคคล

    ไฟล์ข้อมูลรายได้/รายจ่าย

    โปรแกรม Payroll

    ไฟล์ข้อมูลคำนวณภาษี

    DBMS

    ไฟล์ข้อมูลพนักงานขาย

    ไฟล์ข้อมูลลูกค้า

    โปรแกรม Sales Analysis &

    Evaluation

    แผนกตลาด

    ไฟล์ข้อมูลการสั่งซื้อ

    ไฟล์ข้อมูลการส่งสินค้า

    ไฟล์ข้อมูลสินค้าคงคลัง

    ไฟล์ข้อมูลผู้ขาย

    แผนกจัดซื้อ

    โปรแกรม Inventory Control

    ไฟล์ข้อมูลจัดซื้อ

    ไฟล์ข้อมูลเบิกจ่ายสินค้า

    ไฟล์ข้อมูลสินค้าคงคลัง


    Relational database

    Table ไฟล์ข้อมูลพนักงานของบริษัทแห่งหนึ่งลูกค้า

    รู้จักกับฐานข้อมูลเชิงสัมพันธ์ (Relational Database)

    Table สินค้า

    Table การสั่งซื้อ


    ชนิดของความสัมพันธ์ระหว่างตารางชนิดของความสัมพันธ์ระหว่างตาราง

    • ความสัมพันธ์ของข้อมูลรหว่างตาราง สามารถแยกออกได้ 3 ชนิดคือ

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

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

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


    Normalization
    Normalization ชนิดของความสัมพันธ์ระหว่างตาราง

    • Normalization : ขั้นตอนหรือกระบวนการที่ใช้สำหรับจัดระเบียบ,สจัดรูปแบบ,จัดโครงสร้าง, ลดความซ้ำซ้อนของข้อมูลที่คุณจัดเก็บในแต่ละตาราง เพื่อให้ข้อมูลที่เก็บอยู่มีความน่าเชื่อถือไม่ขัดแย้งกันเอง

    • การทำ Normalizaton กับฐานข้อมูล เป็นการแบ่งตารางออกเป็นตารางย่อยๆ ตารางที่แบ่งย่อยออกมาจะถูกเรียกเป็นระดับๆ ว่า Normal Form มีทั้งหมด 5ระดับคือ First Normal Form(1NF) ไปจนถึง 5NF แล้วแต่ว่าฐานข้อมูลมีขอบเขตการใช้งานและขนาดของฐานข้อมูลมากเท่าใด เงื่อนไขการทำงานของระบบ

    • การทำ Normalization อีกวิธีเรียกว่า BCNF (Boyce-Codd Normal Form) อาจเรียกวิธีลัดในการทำให้ตารางอยู่ในระดับ 3NF โดยไม่ตามลำดับ 1NF ไปจนถึง 3NF


    Normalization1
    จุดประสงค์ในการทำ ชนิดของความสัมพันธ์ระหว่างตารางNormalization

    • ควบคุมความถูกต้องของข้อมูล : ป้องกันไม่ให้ข้อมูลขัดแย้งกันเอง เช่น ตารางข้อมูลลูกค้ากับตารางขายสินค้า สมมติว่า ลูกค้าเปลี่ยนชื่อ-นามสกุล ส่งผลให้ข้อมูลในตารางลูกค้ากับตารางขายสินค้าต้องเปลี่ยนไปทั้ง 2 ตาราง

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


    ตัวอย่างชนิดของความสัมพันธ์ระหว่างตาราง


    ขั้นตอนแรก ชนิดของความสัมพันธ์ระหว่างตาราง


    ขั้นที่สองชนิดของความสัมพันธ์ระหว่างตาราง

    • ในขั้นตอนนี้ต้องแก้ไขให้ตาราง TranID แสดงข้อมูลว่า นักศึกษาคนใดลงทะเบียนวิชาใดบ้าง ซึ่งเป็นข้อมูลของตารางเดิมที่มีอยู่ก่อนการแก้ไข ส่วนตาราง Student และตาราง Major ใช้ได้แล้ว มีเหตุผลคือ

      • ทราบมหาวิทยาลัยนี้เปิดสอนกี่สาขา โดยดูจากตาราง Major

      • ถ้ามีนักศึกษาใหม่เพิ่มเข้ามา จะเพิ่มชื่อที่ตาราง Student เพียงตารางเดียว

      • ถ้านักศึกษาต้องการเปลี่ยนชื่อ-นามสกุล หรือเปลี่ยนสาขา คุณก็สามารถแก้ไขที่ตาราง Student เดียวเท่านั้น

    • ข้อเสียของตาราง TranID มีดังนี้

      • ข้อมูลที่อยู่ในเร็คคอร์ดจะมีค่าซ้ำซ้อนเท่ากับจำนวนนักศึกษาที่ลงทะเบียน ซึ่งจะเหมือนกับตาราง Student เดิมในตอนแรก และถ้าในภายหลังนักศึกษาต้องการลงทะเบียนเรียนเพิ่มทุกคน จะเกิดความซ้ำซ้อนเพิ่มมากขึ้นไปอีก

      • ถ้าต้องการเปิดสอนวิชาใหม่ ไม่สามารถเพิ่มได้เพราะว่า เมื่อเพิ่มเข้ามา 10 วิชา จะไปเพิ่มรหัสนักศึกษา 10 หมายเลข ดังนั้นฟิวด์ StudentID กับ CourseIDไม่ควรอยู่ด้วยกัน


    ขั้นที่สอง ชนิดของความสัมพันธ์ระหว่างตาราง


    ขั้นที่สามชนิดของความสัมพันธ์ระหว่างตาราง

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


    ขั้นที่สามชนิดของความสัมพันธ์ระหว่างตาราง


    แบบฝึกหัดท้ายบทชนิดของความสัมพันธ์ระหว่างตาราง

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


    จบครั้งที่ ชนิดของความสัมพันธ์ระหว่างตาราง7


    ad