วันเสาร์ที่ 21 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part III

The Enhanced Entity-Relationship Model

แนวคิดพื้นฐานของ E-R model เพียงพอสำหรับการนำไปใช้ในการสร้างโครงสร้างฐานข้อมูลในโปรแกรมประยุกต์ในฐานข้อมูลธุรกิจทั่วๆไป แต่ยังไม่เพียงพอในการนำเสนอข้อมูลความต้องการในงานที่ใหม่กว่า เช่น งานด้านวิศวกรรม (CAD/CAM Database) ฐานข้อมูลภาพ (Image and Graphic DB) ฐานความรู้ในงานด้านปัญญาประดิษฐ์ (Knowledge base for AI) การทำให้ครอบคลุมส่วนเพิ่มขึ้นจำเป็นที่จะต้องพัฒนา แนวคิดในการออกแบบตัวแทนที่มีความเชื่อมโยงกับความหมายของคำ (Semantic modeling Concept)
E-R model ที่สนับสนุน Semantic Modeling Concept นี้ก็คือ Enhanced E-R Model
Enhanced Entity Relationship model มี E-R model เป็นพื้นฐานรวมกับส่วนที่เพิ่มเติมคือแนวคิดของ specialization/generalization และ categorization.

Semantic : adj : Connected with the meanings of words

The Concepts of Specialization/Generalization

แนวคิดของ Specialization/Generalization นั้นเกี่ยวข้องกับ Subclass และ SuperClass และ
the process of attribute inheritance.


SuperClass และ SubClass
Superclass: An entity set that includes distinct subclasses that require to be
represented in a data model.
Subclass: A subclass is also an entity set that has a distinct role and is
also a member of a superclass.

Attribute Inheritance
คุณสมบัติที่จำเป็นของ Entity ไม่ว่ามีระดับสูงกว่าหรือต่ำกว่า สร้างโดย Specailization/Gernalization นั้นคือ Attribute Inheritance (การสืบทอด Attribute)

Specialization(Top-down Approach)

หาและระบุความแตกต่างระหว่าง Object ที่อยู่ใน Class เดียวกันซึ่งสามารถถูกแบ่งได้มากกว่า 1 หรือมากกว่า
Generalization(Bottom-up Approach)
ลดความแตกต่าง Object แต่ละตัวโดยระบุ Common feature

Contraints on Specialization and Generalization
มีข้อกำหนดอยู่ 2 ประเภท ที่พบบนความสัมพันธ์ระหว่าง Superclass และ Subclass ไม่ว่าจะเป็นการทำ Specialization หรือ Generalization คือ Disjointness Constrain และ Completeness Constrain

Disjointness Constrain
เป็นข้อกำหนดเกี่ยวกับ subclass ว่า Entity ใดๆ จะเป็นสมาชิกอยู่ได้ใน Entity Subclass เดียวเท่านั้น

  • Disjoint ต้องการให้ Entity ที่ไปอยู่ในระดับต่ำกว่านั้น อยู่ได้แค่ Entity Set เดียว
  • Overlapping ต้องการให้ Entity ที่ไปอยู่ในระดับต่ำกว่านั้นอาจอยู่ได้มากกว่า 1 Entity Set

Completeness Constrain

  • Total generalization or specialization : Each higher-level entity must belong
    to a lower-level entity set. (แต่ละ Entity ที่อยู่ระดับสูงกว่าต้องไปอยู่ใน Entity ที่ต่ำกว่า)
  • Partial generalization or specialization : Some higher-level entities may not
    belong to any lower-level entity set. (Entity ที่อยู่ระดับสูงกว่าอาจจะไม่ไปอยู่ใน Entity ระดับต่ำกว่า)

Example


Total Disjoint (Complete)

จาก E-R Diagram แสดงว่า บังคับให้นิสิตทำงานอย่างใดอย่างหนึ่ง เมื่อแปลงเป็น Schema จะได้ 2 แบบ

Schema แบบที่ 1

  1. Student (SID,SName,GPA)
  2. Consultant(SID,SubCode,RatePerHour)
  3. LabAssistant(SID,LabName,Salary,Function)

Schema แบบที่ 2

  1. Consultant(SID,SName,GPA,Subcode,RatePerHour)
  2. LabAssistant(SID,SName,GPA,LabName,Salary,Function)

Partial Disjoint


นิสิตเลือกทำงานหรือไม่ทำก็ได้ ถ้าทำจะทำได้อย่างเดียว ใช้ Schema แบบที่ 1 เท่านั้น


Total Overlap



นิสิตทุกคนต้องทำงานโดย ทำทั้งสองอย่างก็ได้ ใช้ Schema แบบที่ 1 ถ้าใช้ Schema แบบที่ 2 จะเกิดข้อมูลซ้ำซ้อน ถ้านิสิตคนนั้นทำงาน 2 อย่างเป็นทั้ง Consultant และ LabAssistance



Partial Overlap


นิสิตทำงานหรือไม่ก็ได้ ถ้าทำอาจจะทำสองอย่างก็ได้ ใช้ Schema แบบที่ 1

วันศุกร์ที่ 20 กรกฎาคม พ.ศ. 2550

Conversion Problems

Exercise Converting ERD to Relation Tables

1.


Office(OfficeID,MgrName,Phone,Address);

Agent(AgentID,Name,Phone,OfficeID)
foreignkey (OfficeID) references Office

Owner(SSN,Name,SpouseName,Profession,SpouseProfession)

Home(HomeID,Street,City,State,Zip,NoBedrms,NoBaths,SqFt,OwnOccupied,Commission,SalesPrice,SSN,AgentID)
foreignkey (AgentID) references Agent
foreignkey (SSN) references Owner



2.


Part(PartNo,PartName);

Supplier
(SuppNo,SuppName);

Project
(ProjNo,ProjName);

Uses
(PartNo,SuppNo,ProjNo);
foreignkey (PartNo) references Part
foreignkey (SuppNo) references Supplier

foreignkey (ProjNo) references Project




3.

Statement(StmtNo,Date,AcctNo);

StmtLine(StmtNo,LineNo,MerName,Amt,TransDate);
foreignkey (StmtNo) references Statement

6.

Agent(AgentID,Name)

Home(HomeNo,Address)

Lists(HomeNo,Agent,Commission)
foreignkey (AgentID) references Agent
foreignkey (HomeNo) references Home

7.

Project(ProjNo,ProjName)

Specialty(SpecNo,SpecName)

ProjectNeeds(ProjNo,SpecNo)
foreignkey (ProjNo) references Project
foreignkey (SpecNo) references Specialty

Contractor(ContrNo,ContrName,SpecNo)
foreignkey (SpecNo) references Specialty

ProvidedBy(ProjNo,SpecNo,ContrName)
foreignkey (ProjNo,SpecNo) references ProjectNeeds
foreignkey (ContrName) references Contractor

8.



แบบที่ 1

Customer(Customer,.....)

Employee(Empno,.......,SupEmpNo)
foreignkey (SupEmpNo) references Employee

Product(ProdNo,.....)

Contains(ProdNo,OrdNo,Qty)
foreignkey (ProdNo) references Product
foreignkey (OrdNo) references Order


Order(OrdNo,........,CustNo,EmpNo)
foreignkey (CustNo) references Customer
foreignkey (EmpNo) references Employee

แบบที่ 2


Employee(EmpNo,.....)
Manager(EmpNo,SupEmpNo)
foreignkey (EmpNo) references Employee
foreignkey (SupEmpNo) references Employee





9.


Provider(ProvNo,....)

Physician(ProvNo,.....)
foreignkey (ProvNo) references Provider


Nurse(ProvNo,....)
foreignkey (ProvNo) references Provider


Patient(PatNo,....)
Item(ItemNo,...)


Visit(VisitNo,PatNo,ProvNo)
foreignkey (PatNo) references Patient
foreignkey (ProvNo) references Physician


Visitdetail(VisitNo,VisitDetailNo,ProvNo,ItemNo,...)
foreignkey (VisitNo) references Visit
foreignkey (ProvNo) references Nurse
foreignkey (ItemNo) references Item

วันจันทร์ที่ 16 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part I

Oultine

  • Understanding Relationships
  • Notation basics
  • Generalization/Specialization hierarchies

Data Models
Data model เป็นแบบจำลองข้อมูลเพื่อนำเสนอรายละเอียดเกี่ยวกับโครงสร้างและความสัมพันธ์ระหว่างข้อมูลอยู่ในรูปของแนวคิดหรือตรรกะ ที่ยากแก่การเข้าใจให้อยู่ในรูปแบบมาตราฐาน
Data Model : a collection of conceptual tools for describing data,
data relationships, data semantics, and consistency constraints.

notation : a system of written symbols used especially in mathematics.
semantic : adjective = connected with meanings of words.

การจะออกแบบฐานข้อมูลนั้นจะต้องมีกระบวนการทำ User Requirement (อาจารย์บอก 6-8 เดือน) เก็บความต้องการของผู้ใช้และกฎเกณฑ์ของธุรกรรมต่างในองค์กร (Business Rules) จากนั้นก็นำ User Requirement มาออกแบบ E-R Model แล้วจึงส่งเจ้าของงาน



User Requrement ----> E-R Models ----> Customer



เมื่อได้ E-R Model มาแล้วเราจะมาออกแบบเป็น Relational Model (ตาราง 2 มิติ) ซึ่งจะมีกฏเกณฑ์ตายตัว E-R Model เป็น Real world ขององค์กร ซึ่งใช้ออกแบบในระดับหลักการ



E-R Model



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

องค์ประกอบของ E-R Model

  1. Entity set เป็นกลุ่มของ Entities ที่มีชนิดเดียวกันใช้ Attributes ร่วมกัน
    Entity คือ สิ่งของหรือวัตถุที่เกี่ยวข้องใน Real World ขององค์กร ซึ่งสามารถบอกถึงความแตกต่างจากสิ่งอื่นทั้งหมด เช่น นักศึกษา 1 คน , เหตุการณ์ 1 เหตุการณ์

  2. Realtionship set เป็นกลุ่มของความสัมพันธ์ประเภทเดียวกัน ซึ่งเกิดจากความสัมพันธ์ของ Entity
    แต่ละความสัมพันธ์ (Relationship)คือแถวซึ่งเป็นตัวแทนของความสัมพันธ์ระหว่างหลาย Entity จาก n Entity (n>=2)
    เช่น มี Entity Set นักศึกษา(รหัสนักศึกษา,ชื่อและสกุล, เกรดเฉลี่ย)
    และ มี Entity Set วิชาเรียน(รหัสวิชา,ชื่อวิชา,หน่วยกิต)
    Relationship แทนได้ว่า นักศึกษาคนไหนเรียนวิชาอะไร ตัวอย่าง 5 Relationship ดังนี้



    สมปองลงทะเบียนเรียนวิชา คณิต 1
    สมปองลงทะเบียนเรียนวิชา คณิต 2
    สมหมายลงทะเบียนเรียนวิชา ฐานข้อมูล 1
    สมใจลงทะเบียนเรียนวิชา คณิต 1
    สมใจลงทะเบียนเรียนวิชา Java

Attribute


An entity is represent by a set of (attributes,datavalue) pairs

Attributes : คือข้อมูลที่แสดงลักษณะ และคุณสมบัติของ Entity
เช่น attribute ของบุคคล อาจได้แก่ เลขประจำตัว ชื่อ ส่วนสูง
วันเดือนปีเกิด …. เป็นต้น

Attribute จะมีกรอบของค่าที่เป็นไปได้ที่เราเรียกว่า Domain (a set of permitted values)
เช่น Attribute blood กำหนดให้มีค่าที่เป็นไปได้ เช่น A,B,O,AB เท่านั้น
Attribute salary กำหนดให้มีค่าที่เป็นไปได้ เป็นตัวเลขชนิด double มีค่าไม่น้อยกว่า 10,000 เป็นต้น

ประเภทของ Key ใน Database

  • Superkey
  • Primary key
  • Candidate key
  • Foreign key

ในระบบฐานข้อมูล มีความจำเป็นต้องระบุให้ได้ถึงความแตก ต่างกันระหว่าง Entities ใน Entity Set และ ระหว่าง Relationship ใน Relationship Set
คีย์หลัก คือฟิลด์ (Attribute) ที่ได้รับเลือกให้เป็นตัวที่บอกความ แตกต่างของแต่ละเรคอร์ด
ดังนั้นค่าในฟิลด์นี้ของแต่ละเรคอร์ด ภายในตาราง ต้องไม่ซ้ำกัน
คีย์หลักอาจถูกกำหนดมาจาก attribute เดียว หรือใช้ตั้งแต่ 2 attributes ขึ้นไปร่วมกันกำหนดความแตกต่างของแต่ละเรคอร์ดได้

Superkey คือ กลุ่มของ attribute ตั้งแต่ 1 attribute ที่ระบุความแตกต่างของข้อมูลในตาราง เช่น รหัสนักเรียน SID เป็น 1 ใน Attribute ของ Entity Set Student ที่สามารถระบุความแตกต่างว่า Entity Student แตกต่างจาก Entity Student อื่น SID จึงเป็น Superkey เหมือนกันกับการรวมระหว่าง รหัสนักเรียน SID กับชื่อนักเรียน SName ก็สามารถระบุความแตกต่างของนักเรียนได้เช่นกัน SID,SName จึงเป็น Superkey เช่นเดียวกัน

Candidate Key คือ Superkey ที่ตัด attribute ที่ไม่จำเป็นสำหรับการเป็น Superkey ออก ในกรณี Entity Set Student มี SID เป็น Candidate key แต่ถ้า มี Attribute CitizenID (รหัสประชาชน) เพิ่มขึ้นมา CitizenID จะทำให้เกิด Superkey มากมายและ CitizenID ก็เป็น Candidate key เช่นเดียวกัน

Primary Key คือ Candidate key ที่ถูกเลือกขึ้นมา

Primary key

ประเภทของ Attribute

  • Simple and Composite
    Simple :
    ไม่สามารถแบ่งแยกได้อีก เช่น ชื่อ,สกุล,เพศ,คำนำหน้าชื่อ เป็นต้น
    Composite : สามารถแบ่งแยกได้อีกเช่น ชื่อและสกุล สามารถแบ่งเป็น ชื่อ,สกุล ได้
  • Single-Valued Attribute ที่มีค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้เพียง ค่าเดียว เช่น บุคคลหนึ่งคนมีเพศเดียว Attribute เพศจึงเป็น Single-Valued หรือพนักงานหนึ่งคนมีเงินเดือนเพียงค่าเดียว Attribute เงินเดือนจึงเป็น Single-Valued เป็นต้น
  • Multi-valued Attribute เป็น Attribute ที่มีหลายค่า เช่น วุฒิการศึกษา หลายค่า เช่น บุคคลหนึ่งคนอาจมีวุฒิการศึกษาได้หลายระดับ
  • Derive เป็น Attribute ที่ค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้มาจากการนำ ค่าของข้อมูลใน Attribute อื่นที่มีอยู่ในแต่ละสมาชิกของเอนทิตีมาทำการคำนวณ ซึ่งโดยทั่วไปไม่จำเป็นต้องจัดเก็บ Attribute ประเภทนี้ไว้ในระบบฐานข้อมูล เนื่องจาก Attribute ประเภทนี้มีการเปลี่ยนแปลงค่าของ ข้อมูลในแต่ละสมาชิกของเอนทิตีทุกครั้ง เมื่อมีการเปลี่ยนแปลงค่าของข้อมูลใน Attribute ที่ถูกนำมาคำนวณของแต่ละสมาชิกในเอนทิตี้ เช่น Attribute อายุปัจจุบันสามารถคำนวณได้จาก Attribute วัน/เดือน/ปี

ความสัมพันธ์ของ Entity

  • Binary : A relationship of degree two. 1 ความสัมพันธ์ของ 2 Entity
  • Ternary : A relationship of degree three. 1 ความสัมพันธ์ของ 3 Entity
  • Quarternary : A relationship of degree four. 1 ความสัมพันธ์ของ 4 Entity

Mapping Cardinalities (Type Of Relationship)

  • 1 : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีเพียงสมาชิกเดียว หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อหนึ่ง เช่น เอนทิตีอาจารย์และเอนทิตีคณะ มีความสัมพันธ์กันแบบหนึ่งต่อหนึ่ง กล่าวคือ แต่ละคณะมีคณบดีเพียงหนึ่งคนเท่านั้น และมีอาจารย์เพียงหนึ่งคนเท่านั้นที่เป็นคณบดี เป็นต้น
  • 1 : M , M : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อกลุ่ม เช่น เอนทิตีคณะและเอนทิตีนักศึกษามีความสัมพันธ์กันแบบหนึ่งต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนมีสังกัดเพียงคณะเดียว และหนึ่งคณะอาจมีนักศึกษาในสังกัดได้
  • M : M หมายถึง ความสัมพันธ์ที่สมาชิกมากกว่าหนึ่งสมาชิกใน เอนทิตีหนึ่งมีความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ ดังกล่าวเป็นแบบกลุ่มต่อกลุ่ม เช่น เอนทิตีนักศึกษาและเอนทิตีชุดวิชามีความสัมพันธ์กันแบบกลุ่มต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายชุดวิชา และแต่ละชุดวิชาสามารถมีนักศึกษาลงทะเบียนได้หลายคน

ดูตัวอย่างของความสัมพันธ์ ของนักเรียนกับอาจารย์ วิชาเรียน และ โปรเจค



พิจารณาที่ ความสัมพันธ์ 1 : 1 ระหว่าง Student กับ Project
แสดงให้เห็นว่านักเรียน 1 คนมี 1 โปรเจค และ 1 โปรเจคนั้นมีนักเรียนทำได้คนเดียว ไม่มีการทำซ้ำของโปรเจค เราสามารถเก็บ Schema ของ Table ในความสัมพันธ์ลักษณะนี้ได้ 2 แบบ
Schema แบบที่ 1 คือ Student(SID,SName,GPA,ProjID,ProjName,Budget,Lab);
Schema แบบที่ 2 คือ
Student(SID,SNAME,GPA,ProjID);
foreign key (ProjID) references Project
Project(ProjID,ProjName,Budget,Lab);



พิจารณาที่ ความสัมพันธ์ 1:M ระหว่าง Lecturer กับ Student แบบไม่มี Descriptive Attribute
แสดงให้เห็นว่าผู้สอนแต่ละคนจะเป็นอาจารย์ที่ปรึกษากับกับนักเรียนหลายคน
และนักเรียนแต่ละคนจะมีอาจารย์ที่ปรึกษาได้เพียง 1 คน จะได้ Schema ดังนี้
Lecturer(LecID,LecName,Dept);
Student(SID,SNAME,GPA,ProjID,LecID);
foreign key (ProjID) references Project
foreign key (LecID) references Lecturer



พิจารณาที่ ความสัมพันธ์ M:M ระหว่าง Lecturer กับ Subject
แสดงให้เห็นว่าผู้สอนนั้นสามารถสอนได้หลายวิชาและแต่ละวิชาอาจจะมีผู้สอนได้หลายคน
Lecturer(LecID,LecName,Dept);
Subject(SubID,SubName);
Teach(LecID,SubID)
foreign key (SubID) references Subject
foreign key (LecID) references Lecturer



ความสัมพันธ์ 1 : m แบบมี Descriptive Attribute


รูปนี้ผิดนะกำลังแก้ไขอยู่

  • ลูกค้าแต่ละคนอาจจะมีหลายการเช่า
  • การเช่าแต่ละครั้งต้องมีลูกค้าหนึ่งคน
  • วิดีโอเทปอาจจะมีการยืมหนึ่งรายการ
  • รายการยืมต้องมีหนึ่งรายการ

ปัญหาการออกแบบ E-R

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

วันอาทิตย์ที่ 15 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part II

Weak Entity and Strong Entity
Entity Set อาจจะมี attribute ไม่เพียงพอที่จะทำเป็น Primary key เราเรียก Entity Set นั้นว่า Weak Entity คือไม่สามารถจะมี Primary Key เป็นของตนเอง
Entity Set ที่มี attribute เป็น Primary key ของตนเองเป็น Strong Entity
สำหรับ Weak Entity นั้นจะใช้ประโยชน์ได้มันต้องมีความเกี่ยวข้องกับ Entity Set อื่นที่เราเรียกว่า identifying หรือ owner entity set
ทุก weak entity จะต้องมีความเกี่ยวข้องกับ identifying entity นั่นคือ weak entity นั้นขึ้นกับ (existence dependency) identifying Entity Set และ Identifying Entity Set เป็นเจ้าของ ของ weak entity ที่ถูกบ่งชี้หรือระบุ (identify)
ความสัมพันธ์ที่เกี่ยวข้องกันระหว่าง Weak Entity Set กับ Identifying Entity Set นั้นเรียกว่า Identifying Relationship
Identifying Relationship นั้นมีลักษณะ Many to One จาก Weak Entity ไปยัง Identifying Entity Set และ participation ของ Weak Entity จะเป็นความสัมพันธ์แบบ Total

ปัญหาการออกแบบ E-R
  • Fan Trap เกิดจากลำดับความสัมพันธ์ไม่ถูกต้อง มักพบในกรณีที่เอนทิตีหนึ่งมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับเอนทิตีอื่นตั้งแต่สองเอนทิตีขึ้นไป
  • Chasm Trap เกิดความขาดช่วงของข้อมูลไม่สามารถบอกรายละเอียดของความสัมพันธ์ได้

วันอาทิตย์ที่ 8 กรกฎาคม พ.ศ. 2550

Basic Linux Accounting : Part III

การใช้ Secure SHell

Secure Shell

/etc/ssh/sshd_config
เก็บค่า config สำหรับการ login
PermitRootLogin no
เป็นตัวแปรเกี่ยวกับการยินยอมให้ Root login ผ่าน Secure Shell (Remote)

สำหรับในการเปลี่ยนแปลงค่า config แต่ละครั้งจะต้องให้ Linux อ่านค่าใหม่ ซึ่ง sshd เป็น service จึงต้อง Restart Service

/etc/rc.d/init.d/sshd restart

/var/log/secure
เป็นไฟล์ที่เก็บร่องรอยการ Login ของแต่ละ user ที่เครื่อง Server

RPM

Red Hat Package Management facilitates users to install or update RedHat Software across a wide variety of Linux flavor.

การใช้ package rpm จำเป็นจะต้องมี package มาอยู่ที่เครื่อง Server ก่อนทำการติดตั้ง
เราสามารถใช้ ftp เข้าไปโหลด package จาก http://www.rpmfind.net/ หรือ ftp://download.fedora.redhat.com/pub/fedora/linux/core/

Get RPM with Command-Line Anonymous FTP
เราจะเข้าไปเอา package จาก ftp ของ fedora ด้วย command ftp โดยใช้ user:anonymous เข้าไปดาวน์โหลดให้พิมพ์คำสั่ง

ftp download.fedora.redhat.com

จากนั้นใส่ user : anonymous
pass ไม่ต้องใส่ให้กด Enter ไปได้เลย

จากนั้น cd ไปจนถึง /pub/fedora/linux/core/

ใน core นี้จะประกอบไปด้วย version ของ fedora ถ้า version 2 ให้ cd 2 เพื่อเข้า directory แล้วเข้าไปถึง /i386/os/Fedora/RPMS/
เราสามารถใช้ คำสั่ง get ตามด้วย ชื่อไฟล์ หรือ mget ตามด้วยชื่อไฟล์แล้ว Wild card เช่น abc* เพื่อโหลดไฟล์ที่ขึ้นต้นด้วย abc ทั้งหมดมาก็ได้
จากนั้นพิมพ์ Exit เพื่อออก
แล้วให้ ls เพื่อดูไฟล์ที่ดาวน์โหลดมา

Get RPMs Using CD-ROM
ให้ดูไฟล์ File System Table ที่ /etc/fstab ก่อนว่า cdrom อยู่ที่ drive ไหน

ให้ mount ไปที่ Drive นั้น ด้วยคำสั่ง
mount /mnt/cdrom

จากนั้น cd /mnt/cdrom เพื่อเข้าไป drive cd rom แล้ว copy file ลงที่เครื่องหรือ install จาก cd rom ก็ได้

เมื่อเสร็จแล้วให้ Eject cd-rom ด้วยคำสั่ง
eject cdrom


ตรวจสอบ package ว่าติดตั้งหรือยัง
rpm -q

เช่น rpm -q bind
จะตรวจสอบว่า package bind มีการติดตั้งหรือยัง ในกรณีที่ติดตั้งแล้วระบบจะบอกข้อมูลให้กับเราอย่างไม่ละเอียด ถ้าต้องการให้แสดงข้อมูล Package อย่างละเอียดให้เพิ่ม option i เข้าไปตรง -q เป็น -qi


การติดตั้งและอัพเดท package
ติดตั้งใช้คำสั่ง rpm -ivh
อัพเดทใช้คำสั่ง rpm -Uvh

การลบ package
rpm -e

ดูคำสั่งว่าอยู่ที่ไหนด้วย which
ถ้าเราพิมพ์ which ntpdate
จะได้ผล /urs/sbin/ntpdate


การใช้ ntpdate เพื่อ Synchronize time กับเครื่อง server
เป็นการอัพเดท เวลาของเครื่อง server ให้ตรงกัน ใช้คำสั่งดังนี้
ntpdate clock.nectec.or.th

Schedule update เวลา Crontab
ให้พิมพ์ crontab -e เพื่อทำการกำหนด schedule ให้รันคำสั่ง โปรแกรมจะเปิด vi ขึ้นมาให้เราพิมพ์

0 0,6,12,18 * * * /USR/SBIN/ntpdate clock.nectec.or.th

หมายความว่าให้ทำคำสั่ง
ntpdate clock.nectec.or.th
ทุกวัน ทุกเวลา 0.00,6.00,12.00,18.00

0 ตัวแรกหมายถึง นาที
0 ตัวที่สองเป็นชั่วโมง
6,12,18 เป็นชั่วโมงเหมือนกัน
* ถัดจาก 18 น่าจะเป็นวัน
* ตัวต่อมาน่าจะเป็นสัปดาห์
* ตัวถัดมาน่าจะเป็นเดือน

yum

yum list แสดงรายการ package ทุก package

yum update อัพเดท package ทุก package ที่ใหม่กว่า

yum install ติดตั้ง package ตามชื่อ package นั้น
yum -y install ตอบ yes ทั้งหมดในกรณีที่มีการถาม package ที่จะติดตั้ง

yum info แสดงข้อมูลพื้นฐานเกี่ยวกับ package นั้น

yum remove ถอน package นั้นออก

วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2550

Basic Linux Accouting : Part II

การใช้ VI

Mode


VI มี 2 โหมดการทำงาน คือ Insert mode และ command mode.
VI จะเริ่มต้นจาก Command mode และหากมีการปรับแก้จะเป็น Insert mode
การเปลี่ยนเป็น insert mode ให้กดปุ่ม i และเปลี่ยนกลับเป็น command mode โดยกด ctrl+c หรือ esc

เราสามารถเรียกคำสั่ง vimtutor เพื่อฝึกการใช้งาน vi ได้


การจัดการรายละเอียดของ User
เราสามารถจัดการข้อมูลของ user ด้วยคำสั่ง Chfn มีรูปแบบคำสั่งดังนี้
Chfn จะเป็นการเปลี่ยนข้อมูลของ user ที่กำลัง login
Chfn [username] จะเป็นการเปลี่ยนข้อมูลของ user นั้น


ในกรณีที่เราต้องการแสดงข้อมูลของ user เราใช้ คำสั่ง Finger -l [username]


กำหนดให้ user ทำคำสั่งบางอย่างแทน admin ด้วย visudo
เมื่อพิมพ์ visudo เราจะได้ sudoers file ซึ่งมีวิธีกำหนด command ดังนี้
=() NOPassword


wheel ALL=(ALL) ALL


group wheel สามารถ remote เข้าได้จากทุกเครื่อง และใช้ได้ทุกคำสั่งโดยไม่ต้องใส่ password



arn localhost=/sbin/shutdown -h now


user arn สามารถ login เข้าได้จากเครื่อง localhost(เครื่อง Server เอง)เท่านั้นและจะรันได้เฉพาะคำสั่ง shutdown -h now เท่านั้น

เมื่อกำหนด config เสร็จแล้ว user คนไหนจะพิมพ์คำสั่งให้พิมพ์ sudo ก่อนพิมพ์คำสั่งจริง

การบริหารจัดการ Disk Quoat
ก่อนอื่นพิมพ์ df เพื่อดู Report File system disk space ใช้ df -m เพื่อแสดงเป็น Megabyte

/etc/fstab
เป็นไฟล์ที่แสดงรายการของ partiton ใน linux ที่ทำการชี้มาอัตโนมัติเมื่อมีการ boot เราจำเป็นที่จะต้องบอกกับ linux ว่าเรามีการใช้งาน Disk Quota นะ โดยการแก้ไข Option ของ /home ด้วยการเพิ่ม usrquota ต่อท้ายดังนี้

LABEL=/home /home ext3 defaults,usrquota 1 2

เมื่อมีการแก้ไข config แล้วต้องสั่งให้ linux อ่านค่า config นี้อีกครั้งให้ logout user ทุกคนออกก่อน หรือเข้า mode sigle user (mode 1 ด้วยคำสั่ง init 1)
จากนั้น ใช้คำสั่ง
umout /home
mount /home


สร้างไฟล์กำหนดค่า Quota ของ Partion
ให้สร้างไฟล์ aquota.user ด้วยคำสั่ง touch ที่ directory /home


เริ่มทำ Quota Table
จากนั้นรัน quotacheck command ใน partition /home ด้วยคำสั่ง

quotacheck -v /dev/hdax,sdax
x หมายถึง ตัวเลข partition ของ /home นะ


แก้ไข user's quota

ทำการกำหนด quota ของ user แต่ละคน
edquota [username] เช่น edquota teerayut

เปิด quota ให้ user

ด้วยคำสั่ง

quotaon /dev/hdax,sdax
x หมายถึงตัวเลข partition ของ /home นะ

แสดงรายงานของ Disk Quota
พิมพ์ reqquota -a หรือ repquota /home

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

Basic Linux Accouting : Part I

เราควรจะทำอะไรเป็นบ้างเมื่อได้เรียนบทนี้

  1. มีความเข้าใจ Accounting ในระบบ Linux
  2. สามารถอธิบายการ Add user เข้า Group ได้
  3. สามารถอธิบายการ Swtich User
  4. มีความเข้าใจการใช้งาน VI
  5. ใช้งาน Remote อย่าง Putty และโปรแกรมอื่นๆได้
  6. จัดการข้อมูลรายละเอียดของ user ได้
  7. กำหนด user ให้ทำงานคำสั่งบางคำสั่งด้วย visudo ได้
  8. สามารถบริหารจัดการ Disk Quota ให้กับ user
  9. มีความเข้าใจในการใช้ sshd (deamon)
  10. มีความเข้าใจและใช้งาน Package ของ Linux

ก่อนอื่นให้ตรวจสอบก่อนว่าเครื่องเราสามารถใช้งาน Network ได้หรือไม่ให้พิมพ์ Cat ดูไฟล์ Config ของ Network ด้วยคำสั่ง cat /etc/sysconfig/network-script/ifcfg-eth0 จะปรากฏรายละเอียดของอุปกรณ์การ์ดเน็ตเวิร์ค ถ้า bootproto=dhcp หมายถึงให้เป็นการจ่าย ip อัตโนมัติ

นอกจากนี้เรายังใช้คำสั่ง ifconfig เพื่อดู config ของ interface card ได้ถ้า network ไม่ workเราสามารถ พิมพ์ setup เพื่อกำหนดค่าของ network ได้หรือจะใช้คำสั่ง system-config-network-tui ต่อมา จะเป็นการใช้ putty ในการ connect ก็แค่ใส่ ip ที่ hostname connect ด้วย port 22 ตัว putty จะเป็น Remote Desktop Connection ใน Linux

การ add user และ group

Linux นั้นถูกพัฒนาจาก Unix ซึ่งมีการใช้งานได้หลาย user บนเครื่องเดียวโดยมี root เป็น user ที่มีสิทธิ์ในการควบคุมระบบได้อย่างเต็มที่ โดยจะมีไฟล์ที่เกี่ยวข้องกับบัญชีรายชื่อผู้ใช้อยู่ 3 ไฟล์คือ

  1. /etc/passwd เก็บข้อมูลพื้นฐานของ user 7 คอลัมน์
  2. /etc/shadow เก็บรหัสผ่านของ user แต่ละคนโดยมีการ encrypted
  3. /etc/group เก็บรายชื่อกลุ่มไว้ มี 4 คอลัมน์

/etc/passwd

Username : Password : UID : GID : Description : Home Directory : Shell

username ชื่อ userในระบบ
password รหัสผ่านในที่นี้เป็น x
UID เป็นหมายเลข user ซึ่งไม่ซ้ำกันของ root เป็น 0 ถ้าสร้างใหม่จะมีตัวเลข 1000 ขึ้นไป
GID เป็นหมายเลข group อ้างอิงกับไฟล์ /etc/group
Description รายละเอียดของ user เราสามารถดูได้จากคำสั่ง finger <ชื่อผู้ใช้>
Home Directory เป็นคอลัมน์ที่กำหนดให้ user เมื่อเริ่มต้นเข้าสู่ระบบโดยมีสิทธิ์เต็มที่
Shell เชลล์เริ่มต้นของ user

/etc/shadow

Username : Password : Lastchg : Min : Max : Warn : Inactive : Expire : Flag

Lastchg บอกว่าเปลี่ยนรหัสผ่านล่าสุดเมื่อใด
Min จำนวนวันน้อยที่สุดที่อนุญาติให้เปลี่ยนรหัสผ่าน
Max จำนวนวันมากที่สุดที่รหัสผ่านยังใช้ได้
Warn จำนวนวันที่จะเตือน user ก่อนรหัสผ่านจะหมดอายุ
Inactive จำนวนวันที่อนุญาตให้ user ไม่ต้องปรับเปลี่ยน
Expire จำนวนวันหมดอายุของรหัสผ่าน

/etc/group

Group name : Password : GID : Members

Password รหัสผ่านของกลุ่มไม่ค่อยได้ใช้
Members เป็นสมาชิกที่อยู่ในกลุ่ม

คำสั่ง add user

useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time][-g initial_group] [-G group[,...]][-m [-k skeleton_dir] -M] [-n] [-o] [-p passwd] [-r] [-s shell] [-u uid] login

adduser -u 5001 -g 5000 arn
-u 5001 คือการกำหนด UID ให้เป็น 5001
-g 5000 คือการกำหนด GID ให้เป็น 5000 หมายความว่า user เข้าอยู่ใน group ที่มี gid=5000
arn เป็นชื่อผู้ใช้

อ.มีคำถามว่า การ add user โดยไม่ใส่ uid,gid นั้นไม่ดีอย่างไร ?
เท่าที่ไปดูมาในไฟล์ /etc/passwd และ etc/group
ได้ผลคือ

  1. user จะได้ uid ถัดจาก uid มากที่สุด
  2. จะนำ uid นั้นไปสร้าง group ชื่อเดียวกันกับ user
  3. มี gid=uid

การ Switch User

เราสามารถสลับ user ในการทำงานด้วยคำสั่ง su [-][username]
โดยค่าเริ่มต้นแล้วถ้าไม่ใส่ username หมายความว่าจะ switch ไปที่ root

อ.มีคำถามว่าคำสั่ง "su" กับ "su -" นั้นแตกต่างกันอย่างไร?

คำสั่ง su นั้นจะ switch user ธรรมดาแต่ถ้ามี "-", "-l", "--login" จะเปรียบเสมือน login ด้วย user นั้นจริงๆ ดังนั้นจะได้ environment ของ user นั้น สังเกตจากการอ่านไฟล์ .bash_profile ของ account หลังจาก login

การ switch user นั้นเราสามารถกำหนดค่าได้ว่าให้ user ใดที่ su ได้บ้าง และ ให้ถาม password หลังจาก su หรือไม่ โดยไปแก้ไขที่ไฟล์ /etc/group และ /etc/pam.d/su มีขั้นตอนดังนี้

  1. กำหนดให้ user ในกลุ่ม wheel เท่านั้นที่สามารถใช้ su ได้ ไปที่ไฟล์ /etc/group ทำการ add user ที่ต้องผ่าน VI แล้วไปที่ File /etc/pam.d/su เอานำ comment บรรทัดอยู่ถัดจาก
    # Uncomment the following line to require a user to be in the "wheel" group.
    auth required /lib/security/pam_wheel.so use_uid
  2. กำหนดให้ user ไม่ต้องใส่ password หลังจาก su ให้นำ comment บรรทัดที่อยู่ถัดจาก
    #Uncomment the following line to implicitly trust users in the "wheel" group.
    auth sufficient /lib/security/pam_wheel.so trust use_uid
    เป็นการไว้วางใจ user ที่อยู่ใน group wheel ให้ su ได้โดยไม่ต้องกรอก password

วันอาทิตย์ที่ 10 มิถุนายน พ.ศ. 2550

Managing and Challenge in a Globalization

อ.กล่าวถึง Andrea Jung ผู้หญิงที่เป็น CEO ของ AVON เป็นตัวอย่างของผู้จัดการสมัยใหม่ โดยมี 4 ปัจจัยเป็นเป้าหมายในการบริหาร
  1. การเปลี่ยนแปลงและเป้าหมายที่ท้าทาย (Change and Challenge Goals) โดยพยายามจูงใจบุคคลให้พยายามเอาชนะอุปสรรคและการต่อต้านการเปลี่ยนแปลง
  2. ความเร็ว ทีมเวิร์ค และความยืดหยุ่น (Speed, Teamwork and Flexibility) สิ่งเหล่านี้เป็นสิ่งที่จำเป็นในการการบริหาร ทั้งในมุมมองของกลยุทธ์และการปฏิบัติ
  3. ผู้บริหารทุกระดับขององค์กรจำเป็นต้องใกล้ชิดกับลูกค้า คุณภาพของสินค้าและการบริการ เป็นพลังขับเคลื่อนที่สำคัญ
  4. หากปราศจากการปรับปรุงตลอดเวลาและการเรียนรู้ตลอดชีวิต (Continuous Improvement and Lifelong Learning) ก็ไม่มีความก้าวหน้า

Management is science or art?

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

(management is the process of working with and through others in order to effectively bring about results in organizational vision mission value objective/goals and target by using the limited resources efficiency and above all must have a good governance and ethics/social responsibility in a rapidly changing environment and a turbulent time)

การบริหารจัดการมี 6 ส่วนสำคัญ คือ

  1. การทำงานร่วมกับผู้อื่นหรือโดยผ่านผู้อื่น
  2. สัมฤทธิ์ผล วิสัยทัศน์ พันธกิจ ค่านิยม วัตถุประสงค์/เป้าหมาย เป้า องค์กร
  3. มีความสมดุลระหว่างประสิทธิผลและประสิทธิภาพ
  4. ใช้ทรัพยากรที่มีอยู่อย่างจำกัดให้มีประสิทธิผลและประสิทธิภาพ
  5. มีธรรมาภิบาล จริยธรรม และความรับผิดชอบต่อสังคม
  6. บริหารจัดการกับสภาพแวดล้อมที่มีการเปลี่ยนแปลงอย่างรวดเร็ว และ ในช่วงที่สับสนวุ่นวาย

วิสัยทัศน์(Vision : what do we want to become?)
เป็นภาพในอนาคตอธิบายถึงสิ่งที่องค์กรต้องการจะเป็น แต่ละองค์กรจะต้องมีคำประกาศวิสัยทัศน์ (The vision statement) เพื่อแสดงว่าอะไรที่องค์กรควรจะเป็น (What the organization should become?) และที่ใดที่องค์กรจะไปเชิงกลยุทธ์ (Where it wants to go strategically?)

ตัวอย่าง

Ebay Vision : เป็นตลาดออนไลน์ระดับโลก เพื่อให้ทั้งบุคคลและธุรกิจขายสินค้าบริการ ของตนเอง

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

พันธกิจ (Mission)
คือจุดมุ่งหมาย หรือ เหตุผล ของการดำรงอยู่หรือกำเนิดขึ้นขององค์กร (What is our reason for being or organization’s purpose or reason for existing) “มีแต่คำนิยามของพันธกิจ และจุดมุ่งหมายที่ชัดเจนเท่านั้น องค์กรจึงจะสามารถทำให้วัตถุประสงค์ ชัดแจ้ง และเป็นจริง ได้”
คำประกาศพันธกิจ (The Mission Statement) คือ การแสดงจุดมุ่งหมายขององค์กร (express the purpose of the organization)

ตัวอย่าง
อีเบย์ (eBay): ให้สถานที่ทำการค้าขายระดับโลก ที่ซึ่ง ทุกคนสามารถค้าขายทุกสิ่งทุกอย่างได้
เดล คอมพิวเตอร์ (Dell Computer): เป็นบริษัทคอมพิวเตอร์ที่ประสบความสำเร็จมากที่สุด ในโลก โดยการ ส่งมอบประสบการณ์ที่ดีที่สุดแก่ลูกค้า ในตลาดที่เราให้บริการ

ค่านิยม (Value)

วัตถุประสงค์ (Objective)


เป้าหมาย(Goals)

เป้า (Target)
การบริหารใต้ทรัพยากรที่มีอยู่อย่างจำกัด (Managing Under Limited Resources)

ความมีประสิทธิผลและประสิทธิภาพ (Effectiveness and Efficiency)

จบบทนี้แล้วควรจะทราบอะไรบ้าง

การบริหารคืออะไร การบริหารแนวใหม่เป็นอย่างไร
เข้าใจ vision,mission,values,objective,goals,target,Effectiveness,Efficiency
เข้าใจ ธรรมาภิบาล,จริยธรรม และความรับผิดชอบต่อสังคม
เข้าใจ องค์กรและบทบาทหน้าที่ของผู้บริหาร

วันเสาร์ที่ 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 ของ อ.ยืน ให้กับทุกคน