PDA

View Full Version : سوال: Normalize چیه ؟



mdssoft
پنج شنبه 09 خرداد 1387, 06:48 صبح
سلام به بر و بچ .

من تو پست های شما خیلی Normalize کردن رو می بینم . اما نمی دونم چیه !!! :ناراحت:
تو کلاس های #C هم زیاد دیدم .

میشه واضح بگید چی هست :لبخندساده:

علیرضا مداح
پنج شنبه 09 خرداد 1387, 09:09 صبح
سلام دوست عزیز ،
اگر منظور شما Normalize نمودن دیتابیس است ، پیشنهاد میکنم مفاله زیر را مطالعه نمایید ،
Database Normalization Basics (http://databases.about.com/od/specificproducts/a/normalization.htm)

و اگر فصد شما Normalize کردن String میباشد ، مثال زیر از MSDN را مطالعه نمایید :


// This example demonstrates the String.Normalize method
// and the String.IsNormalized method
using System;
using System.Text;
class Sample
{
public static void Main()
{
// Character c; combining characters acute and cedilla; character 3/4
string s1 = new String( new char[] {'\u0063', '\u0301', '\u0327', '\u00BE'});
string s2 = null;
string divider = new String('-', 80);
divider = String.Concat(Environment.NewLine, divider, Environment.NewLine);
try
{
Show("s1", s1);
Console.WriteLine();
Console.WriteLine("U+0063 = LATIN SMALL LETTER C");
Console.WriteLine("U+0301 = COMBINING ACUTE ACCENT");
Console.WriteLine("U+0327 = COMBINING CEDILLA");
Console.WriteLine("U+00BE = VULGAR FRACTION THREE QUARTERS");
Console.WriteLine(divider);
Console.WriteLine("A1) Is s1 normalized to the default form (Form C)?: {0}",
s1.IsNormalized());
Console.WriteLine("A2) Is s1 normalized to Form C?: {0}",
s1.IsNormalized(NormalizationForm.FormC));
Console.WriteLine("A3) Is s1 normalized to Form D?: {0}",
s1.IsNormalized(NormalizationForm.FormD));
Console.WriteLine("A4) Is s1 normalized to Form KC?: {0}",
s1.IsNormalized(NormalizationForm.FormKC));
Console.WriteLine("A5) Is s1 normalized to Form KD?: {0}",
s1.IsNormalized(NormalizationForm.FormKD));
Console.WriteLine(divider);
Console.WriteLine("Set string s2 to each normalized form of string s1.");
Console.WriteLine();
Console.WriteLine("U+1E09 = LATIN SMALL LETTER C WITH CEDILLA AND ACUTE");
Console.WriteLine("U+0033 = DIGIT THREE");
Console.WriteLine("U+2044 = FRACTION SLASH");
Console.WriteLine("U+0034 = DIGIT FOUR");
Console.WriteLine(divider);
s2 = s1.Normalize();
Console.Write("B1) Is s2 normalized to the default form (Form C)?: ");
Console.WriteLine(s2.IsNormalized());
Show("s2", s2);
Console.WriteLine();
s2 = s1.Normalize(NormalizationForm.FormC);
Console.Write("B2) Is s2 normalized to Form C?: ");
Console.WriteLine(s2.IsNormalized(NormalizationFor m.FormC));
Show("s2", s2);
Console.WriteLine();
s2 = s1.Normalize(NormalizationForm.FormD);
Console.Write("B3) Is s2 normalized to Form D?: ");
Console.WriteLine(s2.IsNormalized(NormalizationFor m.FormD));
Show("s2", s2);
Console.WriteLine();
s2 = s1.Normalize(NormalizationForm.FormKC);
Console.Write("B4) Is s2 normalized to Form KC?: ");
Console.WriteLine(s2.IsNormalized(NormalizationFor m.FormKC));
Show("s2", s2);
Console.WriteLine();
s2 = s1.Normalize(NormalizationForm.FormKD);
Console.Write("B5) Is s2 normalized to Form KD?: ");
Console.WriteLine(s2.IsNormalized(NormalizationFor m.FormKD));
Show("s2", s2);
Console.WriteLine();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
private static void Show(string title, string s)
{
Console.Write("Characters in string {0} = ", title);
foreach(short x in s.ToCharArray())
{
Console.Write("{0:X4} ", x);
}
Console.WriteLine();
}
}
/*
This example produces the following results:
Characters in string s1 = 0063 0301 0327 00BE
U+0063 = LATIN SMALL LETTER C
U+0301 = COMBINING ACUTE ACCENT
U+0327 = COMBINING CEDILLA
U+00BE = VULGAR FRACTION THREE QUARTERS
--------------------------------------------------------------------------------
A1) Is s1 normalized to the default form (Form C)?: False
A2) Is s1 normalized to Form C?: False
A3) Is s1 normalized to Form D?: False
A4) Is s1 normalized to Form KC?: False
A5) Is s1 normalized to Form KD?: False
--------------------------------------------------------------------------------
Set string s2 to each normalized form of string s1.
U+1E09 = LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
U+0033 = DIGIT THREE
U+2044 = FRACTION SLASH
U+0034 = DIGIT FOUR
--------------------------------------------------------------------------------
B1) Is s2 normalized to the default form (Form C)?: True
Characters in string s2 = 1E09 00BE
B2) Is s2 normalized to Form C?: True
Characters in string s2 = 1E09 00BE
B3) Is s2 normalized to Form D?: True
Characters in string s2 = 0063 0327 0301 00BE
B4) Is s2 normalized to Form KC?: True
Characters in string s2 = 1E09 0033 2044 0034
B5) Is s2 normalized to Form KD?: True
Characters in string s2 = 0063 0327 0301 0033 2044 0034
*/


و اگر قصد Normalize نمودن فایل XML را دارید ، به لینک زیر مراجعه نمایید :
http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.normalization.aspx


و در غیراینصورت منظور خود را واضح تر بیان کنید ،/

mdssoft
شنبه 11 خرداد 1387, 05:55 صبح
ممنون آقای مداح . اما می خواستم بدونم اصلا نرمال کردن به چه معناست و چرا باید نرمال سازی کرد .
البته منبع انگلیسیش رو داشتم و چیزی نفهمیدم ، فارسی می خواستم ، اگر ممکن هست !

علیرضا مداح
شنبه 11 خرداد 1387, 08:25 صبح
دوست عزیز اجازه دهید این واژه را از دیدگاه ویکیپدیا بررسی کنیم :

Broadly, normalization (also spelled normalisation) is any process that makes something more normal, which typically means conforming to some regularity or rule, or returning from some state of abnormality. It has specific meanings in various fields:
ref : http://en.wikipedia.org/wiki/Normalization

"به ط.ور گسترده ، وازه Normalization (یا Normalisation) پروسه ای است که چیزی را به حالت نرمال تر در می آورد و در اصل آن را با یکسری مقررات و قوانین تطبیق داده یا آن را از حالت غیرنرمال به حالت نرمال بازمیگرداند. این واژه در فیلدهای گوناگون معانی خاصی دارد."

به طور مثال مقاله زیر را با نام "آشنایی با فرآیند نرمال سازی بانک های اطلاعاتی" مطالعه نمایید :
http://www.srco.ir/Articles/DocView.asp?ID=482