<?php
$old1 = 'H"s';
$old2 = "H's";
echo "new1 : " . addslashes ($old1);
echo "
";
echo "new2 : " . addslashes ($old2);
? >
The output :
new1 : H\"s
new2 : H\'s
Search
Thursday, December 18, 2008
Sunday, December 14, 2008
Finding prim number
#include < stdio.h>
#include < conio.h>
#include < math.h>
main()
{
int A,B,C=0,D;
printf("Program for finding Prime Number!\n\n\t you enter D=");
scanf("%d",&D);
printf("\nSo, prime number which is less than %d is...\n\n ",D);
printf("2\n");
for(A=3;A<=D;A+=2) { for(B=3;B<=sqrt(A);B+=2) {if(A%B==0) break;} if(B>sqrt(A))
{ printf("%d\n",A);
C+=1;
}
}
printf("\n\n\t***There are %d.\n\n\n\r",C+1);
getch();
}
Relational Database Normalization Examples 7/7
ตัวอย่าง 5.1 ตารางที่ยังไม่ทำ normalization (จากเอกสารของผู้ใช้ที่ส่งให้นักวิเคราะห์)
เป็นตารางการสั่งซื้อ ให้ท่านลองนำไปทำ normalization
ตัวอย่าง 5.2 ตารางที่ยังไม่ทำ normalization (จากเอกสารของผู้ใช้ที่ส่งให้นักวิเคราะห์)
เป็นตารางเงินเดือน ให้ท่านลองนำไปทำ normalization
ตัวอย่าง 5.3 ใบเสร็จ 2 ใบ เลขที่ A0001 และ A0002 (ให้ท่านลองนำไปทำ normalization)
ตัวอย่างนี้ได้รับการเสนอแนะจาก sudomvon@minebea.co.th
การทำ Normalization ของตัวอย่าง 5.3 (ได้รับคำแนะนำจาก อ.อมรทิพย์ rung@yonok.ac.th)
เป็นตารางการสั่งซื้อ ให้ท่านลองนำไปทำ normalization
orderid 301 | orderdate 15/12/46 | productid 401 402 | quan 2 5 |
302 | 16/12/46 | 402 405 406 | 4 4 1 |
เป็นตารางเงินเดือน ให้ท่านลองนำไปทำ normalization
saleid 101 | salesalary 2000 | saleposition sale | custid 201 202 203 204 | custname tom dang boy girl |
ตัวอย่างนี้ได้รับการเสนอแนะจาก sudomvon@minebea.co.th
Invoice No.: A0001 |
การเริ่มต้นทำ normalization ต้องนำข้อมูลมาสร้าง ตารางเริ่มต้น ซึ่งเป็นขั้นตอนก่อนการทำ 1NF
โดยไม่เขียน amount และ total เพราะเป็นค่าที่เกิดจากการคำนวณเท่านั้น
ตาราง temp
A0001,24/10/2004,ABC company,Pen,50,3
A0001,24/10/2004,ABC company,Book,100,5
A0001,24/10/2004,ABC company,Ruler,20,2
A0002,24/10/2004,XYZ company,Pen,100,3
A0002,24/10/2004,XYZ company,Book,120,5
A0002,24/10/2004,XYZ company,Ruler,50,2
การทำ 1NF ของ ตัวอย่าง 5.3
นำตารางเริ่มต้นมาจัดการเรื่อง multivalue เช่น คนชอบกินหลายอย่าง หรือการเพิ่ม key ประกอบข้อมูลที่อาจซ้ำ
ตัวอย่างนี้เพิ่มรหัสลูกค้า และรหัสสินค้า เป็น key เพราะคิดว่า ชื่อลูกค้า และชื่อสินค้า อาจมีโอกาสซ้ำกันได้ และไม่เหมาะที่จะเป็น key
ตาราง tempoforder
A0001,24/10/2004,101,ABC company,201,Pen,50,3
A0001,24/10/2004,101,ABC company,202,Book,100,5
A0001,24/10/2004,101,ABC company,203,Ruler,20,2
A0002,24/10/2004,102,XYZ company,201,Pen,100,3
A0002,24/10/2004,102,XYZ company,202,Book,120,5
A0002,24/10/2004,102,XYZ company,203,Ruler,50,2
การทำ 2NF ของ ตัวอย่าง 5.3
แยกตาราง tempoforder เป็นหลายตาราง และทุกตารางมี primary key ที่มีการตรวจสอบการขึ้นตรงอย่างถูกต้อง
primay key คือ รหัสใบสั่งซื้อ
ตาราง invoid_1
A0001,24/10/2004,101,ABC company
A0002,24/10/2004,102,XYZ company
primay key คือ รหัสใบสั่งซื้อ และรหัสสินค้า
ตาราง invoid_2
A0001,201,50,3
A0001,202,100,5
A0001,203,20,2
A0002,201,100,3
A0002,202,120,5
A0002,203,50,2
ตาราง product เพราะราคาขึ้นกับรหัสสินค้า
primary key คือ รหัสสินค้า
ตาราง product
201,Pen,3
202,Book,5
203,Ruler,2
การทำ 3NF ของ ตัวอย่าง 5.3
ตาราง invoid_1 เพราะชื่อลูกค้าไม่ขึ้นกับรหัสใบสั่งซื้อ จึงต้องแยกไปทำตาราง customer
primay key คือ รหัสใบสั่งซื้อ
ตาราง invoid_1
A0001,24/10/2004,101
A0002,24/10/2004,102
ตาราง customer เพราะชื่อลูกค้าไม่ขึ้นกับ รหัสใบสั่งซื้อ แต่ขึ้นกับรหัสลูกค้า
primay key คือ รหัสลูกค้า
ตาราง customer
101,ABC company
102,XYZ company
primay key คือ รหัสใบสั่งซื้อ และรหัสสินค้า เพราะ ปริมาณ และราคาต้องขึ้นกับ key 2 ตัวนี้
ตาราง invoid_2
A0001,201,50,3
A0001,202,100,5
A0001,203,20,2
A0002,201,100,3
A0002,202,120,5
A0002,203,50,2
ตาราง product เพราะราคาขึ้นกับรหัสสินค้า
primary key คือ รหัสสินค้า
ตาราง product
201,Pen,3
202,Book,5
203,Ruler,2
Relational Database Normalization 6/7
ขั้นตอนการ Normalization
- 5.1 เปลี่ยนตารางที่ยังไม่เคย Normalization เป็น First Normal Form หรือ 1NF
- วิธีพิจารณา คือ แยกข้อมูลเป็นระเบียน โดยไม่มีการจัดกลุ่ม
ตารางที่ไม่ผ่านการ normalization orderid
305orderdate
31/01/47productid
432
455
467quan
20
2
1ตารางที่ผ่านการ normalization ในระดับ 1NF orderid orderdate productid quan 305 31/01/47 432 20 305 31/01/47 455 2 305 31/01/47 467 1
5.2 เปลี่ยนจาก 1NF เป็น 2NF(Second Normal Form) คือการเปลี่ยนตารางที่มีปัญหา 4 ประการ - วิธีพิจารณาเปลี่ยน 1NF เป็น 2NF คือ ไม่มี non key ตัวใด ไม่สัมพันธ์กับ primary key (ให้พิจารณาเฉพาะ non key และ primary key)
- สิ่งที่ได้จากตาราง 1 ตาราง จะแตกออกมาเป็นหลายตาราง
- 5.2.1 แก้ไขข้อมูล ต้องแก้หลายระเบียน
- 5.2.2 มีข้อมูลเดียวกันในหลายระเบียน อาจขัดแย้งกันได้
- 5.2.3 การเพิ่มข้อมูลทำได้ยาก
- 5.2.4 การลบข้อมูลทำได้ยาก
ท่านลองพิจารณา Schema ของตารางนี้ว่าจะแยกได้กี่ตาราง
จาก orderid,custid,custname,date,proid,proname,price,quantity,categoryid,categoryname
เป็น orders (orderid,custid,custname,date,proid,proname,price,quantity)
เป็น categories (categoryid,categoryname)
เหตุที่แยก categories ออกมา เพราะ categoryid ไม่สัมพันธ์กับ orderid แต่สัมพันธ์กับ proid โดยตรง จึงต้องแยกออกมา
5.3 เปลี่ยนจาก 2NF เป็น 3NF(Third Normal Form) คือแก้ปัญหายังไม่หมด อาจยังมีข้อมูลที่มีปัญหาอีก จึงต้องทำ 3NF - วิธีพิจารณาเปลี่ยน 2NF เป็น 3NF คือ ไม่มี non key ตัวใด ขึ้นอยู่กับ non key ตัวอื่นใน entity เดียวกัน (ให้พิจารณาเฉพาะ non key และ non key)
จาก orders (orderid,custid,custname,date,proid,proname,price,quantity)
เป็น orders (orderid,custid,date)
เป็น customers (custid,custname)
เป็น order details (orderid,proid,price,quantity)
เป็น products (proid,proname)
Relational Database Design 5/7
- 4. ขั้นตอนการเขียน ER model
- :: สิ่งต่าง ๆ ที่ผู้ใช้งานฐานข้อมูลจะต้องยุ่งเกี่ยวด้วย เช่น คน แผนก ประเภท การสั่งซื้อ เป็นต้น
- Entities are the principal data object about which information is to be collected. Entities are usually recognizable concepts, either concrete or abstract, such as person, places, things, or events which have relevance to the database. Some specific examples of entities are EMPLOYEES, PROJECTS, INVOICES. An entity is analogous to a table in the relational model.
- :: แอททริบิวท์(Attibute) อาจเรียก field หรือ column คือ สิ่งที่ใช้อธิบายคุณสมบัติของเอนติตี้ เช่นคุณสมบัติของคน ก็มี รหัส ชื่อ อายุ เพศ เป็นต้น
- Attributes describe the entity of which they are associated. A particular instance of an attribute is a value. For example, "Jane R. Hathaway" is one value of the attribute Name. The domainof an attribute is the collection of all possible values an attribute can have. The domain of Name is a character string.
- A key is the attribute or set of attributes which allow to identify each unique instance of an entity. So no two instances of an entity have or ever can have the same key value. These keys are called candidate keys. (รหัสนักศึกษา กับรหัสบัตรประชาชน)
- Often we have different attributes or combinations of attributes which can serve as key. One key will be choosen and indicated as main key. It is called the primary key. The other keys are the alternate keys. The primary key is often the shortest possible and is the most unlikely to change.
- The primary key is indicated by underlining the name of attributes which form the primary key. In this case the attribute 'Code' has beed underlined.
- The roof, body and trim of a same car can have different colors. The attribute 'color' is called a multivalued attribute. This type of attribute is represented with a double line. (นักศึกษา 1 คนลงได้หลายวิชา)
- The 'age' attribute, indicated with the slashed line, is a derived attribute. It can be computed from the year and the present date. (เกรดเฉลี่ยของนักศึกษา)
- คำต่าง ๆ ที่ควรทราบ
- - คีย์หลัก (Primary key) :: คีย์หลักประจำแฟ้ม
- ข้อมูลของแอททริบิวท์มีความเป็นหนึ่งเดียว(Uniqueness) กล่าวคือทุก ๆ แถวของตารางจะต้องไม่มีข้อมูลของแอททริบิวท์ที่เป็นคีย์หลักซ้ำกันเลย
- ต้องประกอบด้วยจำนวนแอททริบิวท์ที่น้อยที่สุด(Minimality) ที่จะสามารถใช้เจาะจง หรืออ้างอิงถึงแถวใดแถวหนึ่งในรีเลชันได้
- คุณสมบัติของคีย์หลัก
- - คีย์คู่แข่ง (Candidate key) :: คีย์ที่สามารถเป็น Primary key ได้ เช่น รหัสบัตรประชาชน หรือรหัสผู้เสียภาษี
- - คีย์สำรอง (Alternate key) :: คีย์ตัวอื่น ๆ ในตารางหลังจากเลือก primary key แล้ว
- - คีย์นอก (Foreign key) :: คีย์ตัวอื่น ๆ ในตารางหลังจากเลือก primary key แล้ว
- - คีย์ร่วม (Composite key) :: สามารถแยกออกไปได้อีก เช่น ที่อยู่
- - Composite attibute :: สามารถแยกออกไปได้อีก เช่น ที่อยู่
- - Atomic attibute :: ไม่สามารถแยกออกไปได้อีก เช่น นามสกุล
- - Multivalued attibute :: อาจมีหลายค่าได้ เช่น สีรถ
- - Derived attibute :: ไม่มีค่าแน่นอนของตน แต่ขึ้นกับค่าอื่น เช่นอายุ ขึ้นกับปีเกิด และปีปัจจุบัน
- - Entity type :: ชื่อของ entity เช่น course (courseno,coursename)
- - Entity instance :: ค่าภายในของ entity เช่น bcom101,Introduction to computer
- One-to-one relationship ความสัมพันธ์แบบ 1 ต่อ 1
- เช่น คนขับกับรถ หรือครูใหญ่กับโรงเรียน เป็นต้น
- One-to-many relationship ความสัมพันธ์แบบ 1 ต่อหลายข้อมูล
- เช่น ลูกค้ากับหมายเลขโทรศัพท์มือถือ หรือ อาจารย์ที่ปรึกษากับนักเรียน
- Many-to-many relationship ความสัมพันธ์แบบหลายข้อมูล ต่อหลายข้อมูล
- เช่น นักเรียนกับวิชาที่ลงทะเบียน หรือ คนงานกับโครงการสร้างบ้าน
- เช่น นักเรียนกับวิชาที่ลงทะเบียน หรือ คนงานกับโครงการสร้างบ้าน
- :: ความสัมพันธ์ระหว่าง entity
- 1. Total หรือ Mandatory participation (ต้องมี จะใช้เส้นคู่)
- 2. Partial หรือ Optional participation (เลือกได้ จะใช้เส้นเดียว)
4.1 กำหนด Entity type โดยกำหนดมาจากความต้องการของผู้ใช้ระบบ ว่าจะให้มี Entity สำหรับเก็บข้อมูลอะไรบ้าง
เอนติตี้(Entity) อาจเรียกว่า file หรือ table
4.1.1 Strong entity คือเกิดขึ้นด้วยตนเองไม่ขึ้นกับ entity ใด เช่น นักศึกษา หรืออาจารย์ หรือสินค้า เป็นต้น
4.1.2 Weak entity คือขึ้นโดยอาศัย entity อื่น เช่น เกรดเฉลี่ย ที่มาจากแฟ้มผลการเรียน หรือ แฟ้มลงทะเบียน หรือ แฟ้มสั่งซื้อ เป็นต้น
4.2 กำหนดความสัมพันธ์ (Relationship type) ที่เกิดขึ้นระหว่าง entity ในลักษณะของกริยา
- ดีกรีของความสัมพันธ์(Degree of relation) มี 4 แบบ
4.2.1 Unary relationship คือความสัมพันธ์ภายใน entity เดียวกัน เช่นแต่งงานของพนักงาน แต่ถ้ามีระดับแบบลูกน้อง หัวหน้าจะเรียก Recursive relationship(Unary)
4.2.2 Binary relationship คือความสัมพันธ์แบบสอง entity
4.2.3 Ternary relationship คือความสัมพันธ์แบบสาม entity
4.2.4 Quaternary relationship คือความสัมพันธ์แบบสี่ entity
4.3 กำหนดแอททริบิวท์ (Attribute) ของแต่ละเอนติตี้
4.4 คาร์ดินัลลิตี้ และปาร์ติซิเปชั่นของความสัมพันธ์ (Cardinality and participation of relationship)
- 4.4.1 คาร์ดินัลลิตี้ของความสัมพันธ์(Cardinality of Relationship)
- :: แต่ละเอนติตี้มีความสัมพันธ์ต่อกัน โดยมีคำกริยามาเชื่อมระหว่างแต่ละเอนติตี้
4.4.2 ปาร์ติซิเปชั่นของความสัมพันธ์ (Participation of relationship)
Relational Database ER Model 4/7
3. ER model (Entity-Relationship Model)
:: เสนอครั้งแรกโดย ปีเตอร์(Chen,1976 - 2519) เป็นเครื่องมือนำเสนอโครงสร้างของฐานข้อมูลใน ระดับความคิด(Conceptual level) ออกมาในลักษณะของแผนภาพ(Diagram) ที่ง่ายต่อความเข้าใจ เพื่อสื่อความหมายระหว่างนักออกแบบฐานข้อมูล และผู้ใช้ เกี่ยวกับ ความสัมพันธ์ของเอนติตี้(Entity) กับเอนติตี้(Entity) และเอนติตี้(Entity) กับ แอททริบิวท์(Attibute)
From: http://www.utexas.edu/cc/database/datamodeling/dm/erintro.html
The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a way to unify the network and relational database views. Simply stated the ER model is a conceptual data model that views the real world as entities and relationships. A basic component of the model is the Entity-Relationship diagram which is used to visually represents data objects. Since Chen wrote his paper the model has been extended and today it is commonly used for database design For the database designer, the utility of the ER model is:
- It maps well to the relational model. The constructs used in the ER model can easily be transformed into relational tables.
- It is simple and easy to understand with a minimum of training. Therefore, the model can be used by the database designer to communicate the design to the end user.
- In addition, the model can be used as a design plan by the database developer to implement a data model in a specific database management software.
From: http://itprojmngt.8m.net/softdev/analysis/erd/erd.html
The goal of Entity Relationship Modeling Technique is to discover and represent the relations between groups of information elements. The method will list the information which is essential for the application and/or organization, structure and describe this information. The results will serve to design the databases. The resulting drawing is never finished. It will evolve together with the information which is managed by the application or/and which serves the business purposes.
ส่วนประกอบของ ER model
- เอ็นติตี้ (Entity)
- แอททริบิวท์ (Attribute)
- ความสัมพันธ์ระหว่างเอ็นติตี้ (Relationship)
- ดีกรีของความสัมพันธ์ (Degree of a relation)
ขั้นตอนการเขียน ER model
3.1 สร้าง entity ขึ้นมาจากความต้องการของผู้ใช้
3.2 สร้างความสัมพันธ์(Relation) ระหว่าง entity
3.3 พิจารณา key ของแต่ละ entity
3.4 พิจารณาคุณสมบัติของ entity แต่ละตัว
:: เสนอครั้งแรกโดย ปีเตอร์(Chen,1976 - 2519) เป็นเครื่องมือนำเสนอโครงสร้างของฐานข้อมูลใน ระดับความคิด(Conceptual level) ออกมาในลักษณะของแผนภาพ(Diagram) ที่ง่ายต่อความเข้าใจ เพื่อสื่อความหมายระหว่างนักออกแบบฐานข้อมูล และผู้ใช้ เกี่ยวกับ ความสัมพันธ์ของเอนติตี้(Entity) กับเอนติตี้(Entity) และเอนติตี้(Entity) กับ แอททริบิวท์(Attibute)
From: http://www.utexas.edu/cc/database/datamodeling/dm/erintro.html
The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a way to unify the network and relational database views. Simply stated the ER model is a conceptual data model that views the real world as entities and relationships. A basic component of the model is the Entity-Relationship diagram which is used to visually represents data objects. Since Chen wrote his paper the model has been extended and today it is commonly used for database design For the database designer, the utility of the ER model is:
- It maps well to the relational model. The constructs used in the ER model can easily be transformed into relational tables.
- It is simple and easy to understand with a minimum of training. Therefore, the model can be used by the database designer to communicate the design to the end user.
- In addition, the model can be used as a design plan by the database developer to implement a data model in a specific database management software.
From: http://itprojmngt.8m.net/softdev/analysis/erd/erd.html
The goal of Entity Relationship Modeling Technique is to discover and represent the relations between groups of information elements. The method will list the information which is essential for the application and/or organization, structure and describe this information. The results will serve to design the databases. The resulting drawing is never finished. It will evolve together with the information which is managed by the application or/and which serves the business purposes.
ส่วนประกอบของ ER model
- เอ็นติตี้ (Entity)
- แอททริบิวท์ (Attribute)
- ความสัมพันธ์ระหว่างเอ็นติตี้ (Relationship)
- ดีกรีของความสัมพันธ์ (Degree of a relation)
ขั้นตอนการเขียน ER model
3.1 สร้าง entity ขึ้นมาจากความต้องการของผู้ใช้
3.2 สร้างความสัมพันธ์(Relation) ระหว่าง entity
3.3 พิจารณา key ของแต่ละ entity
3.4 พิจารณาคุณสมบัติของ entity แต่ละตัว
Relational Database Design 3/7
2. ขั้นตอนเกี่ยวกับการออกแบบฐานข้อมูล
2.1 เปลี่ยนความต้องการของผู้ใช้เป็น ER model หรือ Relational model
2.1.1 โมเดลแบบ ER model (Entity-Relationship Model)
- เอ็นติตี้ (Entity)
- แอททริบิวท์ (Attribute)
- ความสัมพันธ์ระหว่างเอ็นติตี้ (Relationship)
- ดีกรีของความสัมพันธ์ (Degree of a relation)
2.1.2 โมเดลเชิงสัมพันธ์ (Relational model)
- รีเลชัน (Relation) หรือ Table หรือ file
- ทูเพิล (Tuple) หรือ Row หรือ Record
- แอททริบิวท์ (Attribute) หรือ Column หรือ Field
2.2 การทำนอร์มัลไลซ์ (Normalization)
2.3 กำหนดคุณสมบัติของเขตข้อมูลแต่ละตัว
2.1 เปลี่ยนความต้องการของผู้ใช้เป็น ER model หรือ Relational model
2.1.1 โมเดลแบบ ER model (Entity-Relationship Model)
- เอ็นติตี้ (Entity)
- แอททริบิวท์ (Attribute)
- ความสัมพันธ์ระหว่างเอ็นติตี้ (Relationship)
- ดีกรีของความสัมพันธ์ (Degree of a relation)
2.1.2 โมเดลเชิงสัมพันธ์ (Relational model)
- รีเลชัน (Relation) หรือ Table หรือ file
- ทูเพิล (Tuple) หรือ Row หรือ Record
- แอททริบิวท์ (Attribute) หรือ Column หรือ Field
2.2 การทำนอร์มัลไลซ์ (Normalization)
2.3 กำหนดคุณสมบัติของเขตข้อมูลแต่ละตัว
Relational Databse Schema Example 2/7
ตัวอย่างของ Relation schema ของ Northwind
- Categories (CategoryID,CategoryName,Description,Picture)
- Customers (CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax)
- Employees (EmployeeID,LastName,FirstName,Title,BirthDate,HireDate,Address,City,Region,PostalCode,Country,HomePhone,Extension,Photo,Notes,ReportsTo)
- Products (ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued)
- Shippers (ShipperID,CompanyName,Phone)
- Suppliers (SupplierID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax,Homepage)
- Orders (OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate,ShipVia,Freight,ShipName,ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry)
- Order Details (OrderID,ProductID,UnitPrice,Quantity,Discount)
ตารางข้างล่างนี้คือ ตารางแสดงความสัมพันธ์ที่ใช้โปรแกรม Microsoft access สร้างขึ้น
Relational Database Design 1/7
- สถาปัตยกรรมฐานข้อมูล(Database architecture) 3 ระดับ(Three-level architecture) ::
- 1.1 ระดับภายนอก (External level)
- มาจากแบบฟอร์มเอกสาร ว่ามีอะไรในเอกสารบ้าง หรือจากผู้ใช้ที่แต่ละคน
- เป็นการรวบรวมข้อมูลอย่างง่าย ๆ จากผู้ใช้ เพื่อให้กับนักวิเคราะห์นำไปศึกษา
- ผู้ใช้คนที่หนึ่ง : (รหัส, ชื่อ)
- ผู้ใช้คนที่สอง : (รหัส, ที่อยู่)
- 1.2 ระดับความคิด (Conceptual level)
- ตีความออกมาเป็นตารางโดยนำแบบฟอร์มต่าง ๆ มารวมกัน เพื่อแสดงความต้องการของผู้ใช้ในรูปที่สมบูรณ์
- อาจมีการวิเคราะห์ และออกแบบโดยผ่านขั้นตอนมากมาย ทั้ง E-R หรือ Normalization จนเสร็จสิ้น
- พนักงาน (รหัส, ชื่อ, ที่อยู่) ในแบบสคีมา(Schema)
- หรือ
- person (id, name, address) ในแบบสคีมา(Schema)
- 1.3 ระดับภายใน (Internal level)
- ตีความในระดับการจัดเก็บข้อมูลจริง เป็นหน้าที่ของผู้ออกแบบอย่างแท้จริง
- struct person{
- int id;
- char name[20];
- char address[20]
- } index id;
- source : http://www.thaiall.com
Wednesday, December 3, 2008
Tuesday, December 2, 2008
วิธีแสดงภาษาไทย บน command prompt vista
<< การตั้งค่าให้ดอสพร็อมพ์ในวินโดวส์ 2000/XP/2003 ให้ใช้ภาษาไทยได้ >> |
เขียนโดย คุณ ทัชชี่ |
โดยปกติแล้ว เราจะไม่สามารถใช้ภาษาไทยใน DOS BOX บนวินโดวส์ 2000 ขึ้นไป ไม่ได้เลย อ่านก็ไม่ได้ เขียนแล้วก็อ่านไม่รู้เรื่อง จะเปลี่ยนฟอนต์เป็นฟอนต์ที่มีภาษาไทยก็ไม่ได้อีก ดังนั้นมันต้องมีอะไรแน่ๆครับ ผมเคยไปอ่านเจอวิธีแก้ปัญหานี้ใน Technet ของ Microsoft แต่มันเป็นวิธีแก้ปัญหาของคนในประเทศอื่นๆที่ไม่ได้มีลักษณะภาษาแบบภาษาไทย (ที่มันต้องมีสระบนสระล่างนี่แหล่ะครับ) ซึ่งลักษณะการแก้ปัญหาก็คล้ายๆกัน ผมจึงได้ลองประยุกต์ใช้ดู ปกติเราจะเห็นดอสของวินโดวส์ 2000/XP หน้าตาเป็นแบบนี้ แล้วเราต้องการเปลี่ยนเป็นแบบนี้ ผมมี 2 ตัวเลือกให้คุณเลือก คือ 1) สำหรับมือใหม่ 2) สำหรับมือเก่า 1. มือใหม่อ่านที่นี่ครับ ส่วนมือเก่า ข้ามไปอ่านหัวข้อถัดไปได้เลยครับ 1.1 ก่อนอื่นไปดาวน์โหลดไฟล์นี้มาก่อนครับ http://www.thaikore.com/forum/index.php?act=attach&type=post&id=609 แล้วก็มาแตกไฟล์ (Unzip) จะเห็นได้ว่ามีไฟล์ทั้งหมด 4 ไฟล์ ตามภาพนะครับ 1.2 ให้ติดตั้งฟอนต์ Courier MonoThai ดังนี้ - คลิก Start >> Run แล้วพิมพ์ในช่องว่า fonts - คลิกที่ไฟล์ courmon.ttf แล้วลากมาใส่โฟลเดอร์ fonts 1.3 ดับเบิลคลิกไฟล์ Registry ทั้ง 3 ไฟล์ เพื่อ Import เข้าไปใน Registry ของระบบ 1.4 Restart เครื่อง 1 ครั้ง 1.5 คลิก Start >> Programs >> Accessories >> Command Prompt แล้วคลิกตามภาพนี้ 1.6 จากในภาพ ผมแนะนำให้ตั้งค่าขนาดฟอนต์เป็นขนาด 18 – 20 นะครับ เพื่อความคมชัด 1.7 หลังจากนั้นก็ลองใช้ดูได้เลยครับ 2. สำหรับมือเก่าอ่านตรงนี้ครับ 2.1 ดาวน์โหลดไฟล์ในข้อ 1.1 มานะครับ แล้วติดตั้งฟอนต์ให้เรียบร้อย 2.2 สั่งรันโปรแกรม regedit.exe แล้วเข้าไปแก้ไขในส่วนต่างๆ ดังนี้ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\Nls ให้เพิ่มข้อมูลชนิด String ชื่อ "0000041e" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont ให้เพิ่มข้อมูลชนิด String ชื่อ "874" มีข้อมูลภายในคือ "Courier MonoThai" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation\Font ให้เปลี่ยนข้อมูลชนิด String ที่ชื่อ "font" ให้เป็น "Courier MonoThai" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes ให้เพิ่มข้อมูลชนิด String ชื่อต่อไปนี้ "0000041E" มีข้อมูลภายในเป็น "th" "0001041E" มีข้อมูลภายในเป็น "th" "0002041E" มีข้อมูลภายในเป็น "th" "0003041E" มีข้อมูลภายในเป็น "th" 2.3 สั่ง Restart เครื่อง 1 ครั้ง 2.4 เข้ามากำหนดค่าต่างๆตามรูป 1.5 ครับ 2.5 ทีนี้ก็จะสามารถใช้งานได้แล้วครับ |
Subscribe to:
Posts (Atom)