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

Loading in 2 Seconds...

play fullscreen
1 / 50

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


  • 182 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
slide1

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

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

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

DriveListBox, DirListBoxและ FileListBox

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

DriveListBox, DirListBoxและ FileListBox

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

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

slide7

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”)
slide8

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 : จุดเริ่มต้นของข้อความที่เลือก
slide9
ตัวอย่าง

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

slide10

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

slide11

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

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

การหา 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)
slide13

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

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

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

slide15

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
  • การอ่านข้อมูลจาก Sequential File

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

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

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

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

slide17

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

sequential file1
Sequential File
  • การเพิ่มข้อมูลลงใน Sequential File
    • จะเป็นการนำข้อมูลใหม่มาต่อท้ายข้อมูลเดิม โดยระบุใช้คำสั่ง Append ในโหมดเปิดไฟล์
    • การเพิ่มข้อมูลลงไฟล์ใช้คำสั่ง Print หรือ PrintLine
    • รูปแบบ Print(FileName,data)

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

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

slide19

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

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

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

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

slide21

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

random access file
Random Access File
  • การสร้าง Random Access File
    • ใช้โหมด Random ในขั้นตอนการเปิดไฟล์ และใช้คำสั่ง FilePut ในการบันทึกข้อมูล
    • รูปแบบ FilePut(FileNumber,recorData,recordNumber)

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

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

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

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

slide24

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

random access file1
Random Access File
  • การอ่านข้อมูลจาก Random Access File
    • ใช้คำสั่ง FileGet
    • รูปแบบ FileGet(FileNumber,recorData,recordNumber)

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

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

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

slide27

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

binary file
Binary File
  • การเขียนข้อมูลแบบ Binary File
    • ใช้คำสั่ง FilePut
    • รูปแบบ FilePut(FileNumber, Data,Position)

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

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

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

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

slide30

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

slide31

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

slide32

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

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

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

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

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

ฟิลด์ (Field)

เรคอร์ด (Record)

slide36

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

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

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

โปรแกรม Personnel

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

แผนกบุคคล

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

โปรแกรม Payroll

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

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

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

โปรแกรม Sales Analysis &

Evaluation

แผนกตลาด

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

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

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

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

แผนกจัดซื้อ

โปรแกรม Inventory Control

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

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

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

slide38

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

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

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

โปรแกรม Personnel

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

แผนกบุคคล

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

โปรแกรม Payroll

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

DBMS

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

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

โปรแกรม Sales Analysis &

Evaluation

แผนกตลาด

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

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

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

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

แผนกจัดซื้อ

โปรแกรม Inventory Control

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

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

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

relational database

Table ลูกค้า

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

Table สินค้า

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

slide40
ชนิดของความสัมพันธ์ระหว่างตารางชนิดของความสัมพันธ์ระหว่างตาราง
  • ความสัมพันธ์ของข้อมูลรหว่างตาราง สามารถแยกออกได้ 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 ตาราง หรือพนักงานย้ายแผนกแต่ต้องไปแก้ไขตารางอื่นอีกมากมาย เป็นต้น
slide45
ขั้นที่สอง
  • ในขั้นตอนนี้ต้องแก้ไขให้ตาราง TranID แสดงข้อมูลว่า นักศึกษาคนใดลงทะเบียนวิชาใดบ้าง ซึ่งเป็นข้อมูลของตารางเดิมที่มีอยู่ก่อนการแก้ไข ส่วนตาราง Student และตาราง Major ใช้ได้แล้ว มีเหตุผลคือ
    • ทราบมหาวิทยาลัยนี้เปิดสอนกี่สาขา โดยดูจากตาราง Major
    • ถ้ามีนักศึกษาใหม่เพิ่มเข้ามา จะเพิ่มชื่อที่ตาราง Student เพียงตารางเดียว
    • ถ้านักศึกษาต้องการเปลี่ยนชื่อ-นามสกุล หรือเปลี่ยนสาขา คุณก็สามารถแก้ไขที่ตาราง Student เดียวเท่านั้น
  • ข้อเสียของตาราง TranID มีดังนี้
    • ข้อมูลที่อยู่ในเร็คคอร์ดจะมีค่าซ้ำซ้อนเท่ากับจำนวนนักศึกษาที่ลงทะเบียน ซึ่งจะเหมือนกับตาราง Student เดิมในตอนแรก และถ้าในภายหลังนักศึกษาต้องการลงทะเบียนเรียนเพิ่มทุกคน จะเกิดความซ้ำซ้อนเพิ่มมากขึ้นไปอีก
    • ถ้าต้องการเปิดสอนวิชาใหม่ ไม่สามารถเพิ่มได้เพราะว่า เมื่อเพิ่มเข้ามา 10 วิชา จะไปเพิ่มรหัสนักศึกษา 10 หมายเลข ดังนั้นฟิวด์ StudentID กับ CourseIDไม่ควรอยู่ด้วยกัน
slide47
ขั้นที่สาม
  • ในขั้นตอนนี้พิจารณาว่าในใบลงทะเบียนควรจะมีข้อมูลอะไรบ้าง ซึ่งควรจะมีใบลงทะเบียน , รหัสนักศึกษา, รหัสวิชา, ชื่อวิชา และหน่วยกิตของแต่ละวิชา ดังตัวอย่าง
slide49

แบบฝึกหัดท้ายบท

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

ad