วันเสาร์ที่ 9 มิถุนายน พ.ศ. 2550

Introduction to Database Management System

งานของ Db เริ่มจาก Field จาก User Requirement
Read intensive เก็บเพื่อเก็บ Insert อย่างเดียว ไม่จำเป็นต้อง Design ก็ได้
Write intensive เก็บเพื่อ Update นั้นจำเป็นจะต้องมีการออกแบบ
DBMS provides mechanisms

สิ่งที่ต้อง Concern ในการออกแบบคือการซ้ำซ้อนของข้อมูลในตารางเดียวกัน หรือ ตารางอื่น
Field ต่อๆกันเป็นตัวแทนของ Record
Class, File, Table เมื่อนำหลายๆไฟล์เข้าด้วยกันโดยที่มีความสัมพันธ์กัน
Class แบ่ง
Tangible เป็นไฟล์ปกติ
Intangible เป็นไฟล์ของความสัมพันธ์

กรณีตัวอย่างงานการเรียนการสอน
Lecturer, Student, Subject ถือว่าเป็น Tangible
Advisor, Teach, Registration ถือว่าเป็น Intangible

Traditional File Environment (File Processing)
ระบบประมวลผลแบบไฟล์นั้นแต่ละ Application จะมีข้อมูลเป็นของตนเองซึ่งมี record ที่โปรแกรมจำเป็นต้องใช้

มีปัญหา Program - Data Dependence
ข้อมูลของใครของมัน เช่น คนหนึ่งเขียน Class program ใช้ File Format ของ Class Program คนหนึ่งเขียน Account Program ใช้ File Format ของ Account Program แต่ข้อมูลนั้นเป็นประเภทเดียวกัน หรือชุดเดียวกัน ทำให้ Data dependence เป็นตัวทำให้เกิด Data redundancy

Data Redundancy
การซ้ำซ้อนของข้อมูลเกิดเมื่อหน่วยงานในองค์กรเก็บข้อมูลแยกกันและสร้างระบบงานเป็นของตัวเอง
Data redundancy เป็นตัวทำให้เกิด data inconsistency

ถึงแม้ว่ามี DBMS แล้วก็ยังมีปัญหา Data Redundancy และ Data Inconsistency อยู่ถ้าไม่มีการบริหารจัดการที่ดี

Data Isolation
ระบบประมวลผลไฟล์นำไปสู่การเข้าถึงข้อมูลที่ยุ่งยากจากหลาย Application (Data can’t be shared) เนื่องจากตัว application นั้น ถูกdesign มาแล้วใช้ File ของตัวเอง

Integrity problems
ข้อมูลที่เก็บอยู่ในฐานข้อมูลจะต้องสอดคล้องกับกฎที่กำหนด จึงต้องมีการการใส่กฎเกณฑ์ลงใน Field เพื่อให้ DBMS reject ข้อมูลที่ไม่ถูกต้องตามกฎออกจาก field ซึ่งเป็นข้อดีของ DB Processing แต่ถ้าเป็น File Processing ตัว Application จะต้องตรวจสอบเองซึ่งเป็นข้อเสียของ File processing

Security problems
กำหนดให้ใครมีสิทธิระดับไหน Grants ถ้าเป็น DBMS นั้นทำได้ง่ายแต่ถ้าเป็น File ทำได้ยาก

Application ที่ถูกพัฒนาขึ้นมาไม่ควรคำนึงถึงการจัดเก็บของข้อมูลนั่นควร application และ data ควรเป็นอิสระต่อกัน
หลักสูตรนี้จะเน้น Optimize จึงให้ทบทวน b-tree, hash index

Databases : The modern approach
กลุ่มของข้อมูลที่มีความสัมพันธ์กันซึ่งสามารถกำจัดปัญหาที่เกิดจาก File processing เนื่องจากเก็บข้อมูลอยู่ในที่เดียวกัน เรียกได้ว่าเป็น Single piece of data ซึ่งสิ่งที่หลายหน่วยงานต้องการ

The enterprise system ระบบรวมขององค์กร
Business process ฝ่ายต่างๆซึ่งมีฟังก์ชั่นงานเป็นของตัวเอง
Business process สามารถสร้าง application ได้แต่ไม่สร้าง database ขึ้นมาเองได้

Locating Data in Databases
A centralized database เก็บไฟล์เป็นศูนย์กลางอยู่ที่เดียว
A distributed database ข้อมูลกระจายอยู่ตาม location นอกเหนือจาก Central ในการดูแลการ insert update delete นั้นต้อง online เสมอกัน
A distributed database แบ่งได้ 2 แบบ
- Replicated complete copies ของ db มีอยู่ทุกที่
- Partition ข้อมูลรวมจะวางไว้ที่ Central ส่วน location แต่ละที่จะมี portion (บางส่วน) ของ database

Database Management System: DBMS
อำนวยความสะดวกและประสิทธิภาพในการบริการข้อมูลและจัดเก็บข้อมูล โดยการซ่อนระดับรายละเอียดภายใน จะให้เราเห็นเฉพาะส่วนที่เราออกแบบ รายละเอียดภายในของ DBMS นั้นมีผลกับ DBMS โดยตรง อาจจะต้องเข้าไปดู Physical level กันเยอะในวิชานี้

Abstract View of Data
Imagine ว่า data นั้นมี 3 ระดับเพื่อให้ง่ายแก่การทำความเข้าใจ ซึ่งมีเหตุผลในการแบ่ง abstract view of data
- Physical Data Views มองว่า Data นั้นถูกจัดเก็บอย่างไร (How data are stored)
- Conceptual level, Logical level ในองค์กรเรามีไฟล์อะไรบ้าง (what data are stored in the database) เห็น Data ขององค์กรหมดเลย
- External Level application มองเห็นข้อมูลเพียงบางส่วนเป็น view แต่มากกว่า 1 view (part of the entire database)

Data model
Hierarchical, Network, Relational, Object-Oriented, Entity-Relation model
Model ที่ใช้ในทางธุรกิจคือ relational (มองเป็น 2 มิติ), entity-relation model (มองเป็น diagrams)

Instance และ Schema
Instance is variable values at a specific moment ในขณะใดขณะนึงในฐานข้อมูล (variable values)
Schema เค้าร่างที่ได้จากการออกแบบฐานข้อมูล

Lecturer (LecID, LecName, Dept, Salary, Position)
Student (StdID, StdName, GPA,…,etc.)
Subject (Subcode, subname, credit)
Advisor (LecID, stdID)
Teach (LecID, SubCode)
Registration (StdID, Subcode)

เหล่านี้คือ Schema
แต่ถ้าเป็นข้อมูลใน Table จะเป็น instance

Database Language
Data Definition Language (DDL)

เราสามารถกำหนดโครงสร้างด้วยชุดของนิยามโดยใช้ภาษาเฉพาะของมันหรือที่เราเรียกว่า DDL
เช่น Create, Alter, Drop -> Table, View, Index DDLจะใช้สร้างโครงสร้างของข้อมูล จะไม่ยุ่งเกี่ยวกับ instance
DDL Interpreter ใช้ compile DDL จะได้ตารางที่จะจัดเก็บในไฟล์ชนิดหนึ่งที่เรียกว่า Data Dictionary ซึ่งบรรจุ Meta data (data about data)
Consistency constraints เป็นการกำหนดกฎเกณฑ์ของข้อมูลที่จะจัดเก็บใน field การใส่กฎใน Field ก็ถือว่าเป็น DDL เช่นกัน เช่น not null

Data Manipulation Language (DML)
เราสามารถแบ่งคำสั่ง DML ได้ดังนี้

  • Retrieving Data
  • Insert new records
  • Deleting records
  • Updating current Field

Procedural DML ส่วนใหญ่คำสั่งจะเป็นแบบนี้
Non Procedural DML อ.ไม่รู้

Database Access from Application Programs
การเขียน Application ที่มี host language (C#, VB) ใส่ DML ผ่าน API (ODBC, JDBC) เข้าไปในฐานข้อมูล DBMS จึงต้องมี Query Processor ซึ่งประกอบด้วย
· Embedded DML Pre-compiler แปล DML เป็น module (procedure call) สร้าง object code
· DML Compiler แปล DML เป็น low level instruction ที่ QEE เข้าใจได้
DDL Interpreter แปลประโยคคำสั่งที่เป็น DDL
Query Evaluation Engine รันคำสั่งและรีเทิร์นผลลัพธ์

Overall System Structure

Query processor component

  • DML Compiler
  • Embedded DML pre-compiler
  • DDL Interpreter
  • Query evaluation engine

Storage manager components

  • Authorization and integrity manager
  • Transaction manager
  • File manager
  • Buffer manager หน้าที่ OS ล้วนๆ

Database Processing Advantages

  • Data redundancy (Repetition of data) can be reduced. ความซ้ำซ้อนอาจอยู่ตารางเดียวกันหรือกระจายอยู่ตารางอื่น
  • Data inconsistency can be avoided. มีข้อมูลชุดเดียว
  • Data can be shared โปรแกรมเป็น Data independent
  • Standard of data can be controlled
  • Concurrent-access to database can be provided ควบคุมสภาวะความพร้อม
    สมมติว่า a = 1000 เก็บใน db แล้ว t1 เอา ไปลบ 200 ในขณะนั้น t2 นำไป + 500 ถ้าหากไม่มีการควบคุม ก็อาจจะได้ค่า a เป็น 800 หรือ 1500 ก็ได้ DBMS จึงเข้ามาจัดการแก้ปัญหาให้มีการทำงาน Transaction เป็นแบบ Serial Process
    Data integrity and data security



    Business Function
    Tradition view of system. Separate system ใน old organization นั้นจะเป็น discrete business processor and discrete business function (ไม่ต่อเนื่อง) เกิดการไม่แชร์กันของข้อมูลเนื่องจากแยกกันอยู่

วันศุกร์ที่ 8 มิถุนายน พ.ศ. 2550

Workshop Internet Server 1

โอ๊ะ โอว !! เปลี่ยนห้องเรียนกระทันหัน มึนเล็กน้อย

เราอยู่กลุ่ม 1 เตรียมเรียน Java มาอย่างดี ดันสลับกับกลุ่ม 2 เรียน Internet Server สลับกันซะงั้นแล้วกลุ่ม 2 ไม่มี Notebook เรียนไงหว่า ช่างมันเต๊อะ เข้าเรื่องดีกว่า

อาจารย์แนะนำ เว็บคอร์ส ที่ http://mike.cpe.ku.ac.th/214574
จากนั้นแนะนำ syllabus ดูได้ที่ http://mike.cpe.ku.ac.th/214574/index2.html

เข้าเนื้อหา อาจารย์แนะนำ Linux CentOS
http://mike.cpe.ku.ac.th/214574/pdf/Linux%20Installation.pdf

CentOS
  • CentOS distribution มาจาก Red Hat Enterprise Linux ซึ่งเป็น Commercial Support

System Requirement

  • Support คล้ายกับ RHEL
  • Intel x86 etc.
  • RAM 256 Minimum
  • DVD or CD drive , PXE Installation from HD
  • HD Personal Desktop 2.3G ,Workstation 3G ,Server 1G, Everyting 7G , Minimum 620m

Predefined Installation Class

  • Personal Desktop
  • Workstation
  • Server
  • Custom

Installation Method

  • CD-Rom
  • Hard Drive
  • NFS(Network File System)
  • FTP
  • HTTP

Installation Step(21 step)

  1. Insert DVD into the DVD Drive
  2. Start your computer
  3. Boot install procedure
  4. Media check
  5. Continue
  6. Choose an installation language
  7. Choose a keyboard
  8. Choose install type
  9. Choose partition strategy
  10. For automatic partitioning,select partition option
  11. Review Partitions Screen
  12. Configure boot loader
  13. Configure advanced boot loader
  14. Configure Networking
  15. Choose a firewall configuration
  16. Choose language Support
  17. Choose a time zone
  18. set root password(1q2w3e4r)
  19. Select Packages (User Interface : Gnome,KDE,GUI)
  20. Decide to install
  21. Begin install

Hand-on Installation Linux (Fedora)
ทดลองติดตั้ง Fedora

ศึกษา Linux Command Line
http://mike.cpe.ku.ac.th/214574/pdf/Basic%20Linux%20Command.pdf

Permission ของ File จะมี 10 ช่อง
ตัวแรกเป็น Type เช่น ไฟล์ธรรมดา(-) หรือ โฟล์เดอร์ (d)
จากนั้นแบ่งตัวอักขระเป็น 3 กลุ่มๆละ 3 ตัวแยกตามลำดับดังนี้

  • Owner
  • Group
  • Everyon

แต่ละกลุ่มจะมี

  • read 4
  • write 2
  • execute 1
    เราสามารถแทนสิทธิต่างๆด้วยตัวเลขเช่น 755

Command มีค่อนข้างเยอะดูเพิ่มเติม

โจทย์อยากดูรายละเอียดไฟล์บรรทัด 101 ถึง 120 ทำไงโดยใช้คำสั่ง head กับ tail
head - 120 install.log install.log tail -n 20

โจทย์ ไฟล์ในระบบที่มี สตริง org อยู่มีทั้งหมดกี่ไฟล์ (คำสั่ง find)

อาทิตย์ที่ 1 คุณควรจะทำอะไรได้บ้าง

  1. ติดตั้ง Linux ได้
  2. ศึกษาการใช้งาน Command
  3. ฝึกใช้ Command ให้คล่อง ศึกษาหาข้อมูลเพิ่มเติม

ปล. อาจารย์ไม่ซีเรียส ยืดหยุ่น เอาอาหารมาหม่ำๆในห้องได้

วันพุธที่ 6 มิถุนายน พ.ศ. 2550

เตรียมตัวก่อนเรียน Workshop JAVA

เมื่อวาน 5 มิ.ย. 50 Syllabus ของ Workshop Java ออกละต้องเรียนให้ได้ภายใน 7-9 สัปดาห์โดยอาศัยเนื้อหาของ อ.ปรีดา เลิศพงศ์วิภูษนะ ที่ http://www.cpe.ku.ac.th/~plw/home.html
เราจึงเตรียมดู presentation ใน Week 1 ไว้ก่อนเลยแต่คงได้ไม่มาก เพราะเวลาน้อย


เดี๋ยวเรียนเสร็จมาเขียนต่อ
-------------------------------------------------------------
เรียนมาละแต่ Internet Server นะ ไม่ใช่ JAVA
เพราะมีการสลับสับเปลี่ยนวิชาเรียนกัน จบข่าว มึนมาก

วันอังคารที่ 5 มิถุนายน พ.ศ. 2550

Information Techology for Management Chapter 1

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

ท่านบอกว่าการที่เป็นคนที่มีปัญญา มีความรู้มากจะได้เปรียบคนอื่น โดยยกตัวอย่าง GE ที่เมื่อก่อนทำเครื่องใช้ไฟฟ้า แต่เดี๋ยวนี้หันมาทำธุรกิจกับด้านความรู้เป็นหลักดังนั้นการศึกษาระดับ บัณฑิตศึกษานี้ ต้องเป็นคนรอบรู้ สามารถนำความรู้ที่มีมาวิเคราะห์เหตุการณ์ต่างๆได้

สาระสำคัญของวันแรกเฉพาะที่ อ.ยืน กล่าวถึงมีดังนี้

  1. การมีความเข้าใจของการเปลี่ยนแปลงทางด้าน ICT
  2. การประยุกต์ใช้ใน ICT กับธุรกิจและชีวิตประจำวัน
  3. เข้าใจระดับของระบบสารสนเทศ 4 ระดับ
  4. เข้าใจประเภทของระบบสารสนเทศ
  5. เข้าใจองค์ประกอบของระบบสารสนเทศในแต่ละระดับ
  6. นิสิตต้องเป็น Knowledge worker หมั่นศึกษาหาความรู้
  7. นิสิตต้องมีบทบาทในการเรียนการสอน หัดตั้งคำถาม หัดเสนอประเด็นต่างๆที่เชื่อมโยงกับเนื้อหา

เท่าที่ อ.ยืน บรรยายให้ฟังก็พอจับประเด็นได้ดังนี้ นอกนั้นก็จะเป็นเรื่องงาน mini case ในแต่ละบทให้ทำเป็นกลุ่ม กลุ่มละ 4-5 คน ส่งอาทิตย์ถัดจากการเรียนในบทนั้นๆ มีคะแนน10% และงานเรื่องกรณีศึกษาด้าน ICT ของหน่วยงานในประเทศไทย กลุ่มละ 8-9 คน ส่งปลายภาคมีคะแนน 20%

ภารกิจที่ติดตามมาก็คือ

  1. จับกลุ่มทำ mini case ซึ่งตอนนี้ได้แล้วอยู่กับประธานพี่ก้อยที่ชอบเรียกตัวเองว่าป้าก้อย ทำบทที่ 13
  2. อ่านหนังสือและทำแบบฝึกหัดในบทที่ 1
  3. เตรียมอ่านหนังสือล่วงหน้าในบทที่ 2-3 เพื่อเรียนในอาทิตย์ต่อไป
  4. ศึกษา Powerpoint ของ อ.ยืน ซึ่งมีประมาณ 100 Slide

ก่อนแยกย้ายกันกลับบ้าน มีการเลือกคณะทำงานรุ่นมีรองประธาน 3 คนและ เหรัญญิก 2 คน

ประธานคือ พี่ก้อย
รองประธานด้านการศึกษา คือ แชมป์(มั้ง)
รองประธานด้านกิจกรรม คือ ออย
รองประธานด้านสื่อสารและข้อมูล คือ บอย(เราเอง)
เหรัญญิก คือ อิกและพัด

เรียนเสร็จกลับบ้าน ฝนตกอีก เปียกเลย แล้วก็มานั่ง add msn contact ของทุกคน ส่ง ppt ของ อ.ยืน ให้กับทุกคน