በ SQL እና NoSQL መካከል ያለውን ልዩነት ለአያትህ እንዴት ማስረዳት እንደምትችል

በ SQL እና NoSQL መካከል ያለውን ልዩነት ለአያትህ እንዴት ማስረዳት እንደምትችል

አንድ ገንቢ ከሚወስናቸው በጣም አስፈላጊ ውሳኔዎች አንዱ የትኛውን የውሂብ ጎታ መጠቀም እንዳለበት ነው። ለብዙ ዓመታት አማራጮች የተዋቀረውን የመጠይቅ ቋንቋን (SQL) በሚደግፉ የተለያዩ ተዛማጅ የውሂብ ጎታ አማራጮች ብቻ ተወስነዋል። እነዚህም MS SQL Server፣ Oracle፣ MySQL፣ PostgreSQL፣ DB2 እና ሌሎችንም ያካትታሉ።

ባለፉት 15 ዓመታት ውስጥ ብዙ አዳዲስ የውሂብ ጎታዎች በNo-SQL አቀራረብ ወደ ገበያ ገብተዋል። እነዚህ እንደ Redis እና Amazon DynamoDB ያሉ ቁልፍ ዋጋ ያላቸው መደብሮች፣ እንደ ካሳንድራ እና ኤችቢሴስ ያሉ ሰፊ የአምድ የውሂብ ጎታዎች፣ እንደ MongoDB እና Couchbase ያሉ የሰነድ መደብሮች፣ እና እንደ Elasticsearch እና Solr ያሉ የግራፍ ዳታቤዝ እና የፍለጋ ፕሮግራሞችን ያካትታሉ።

በዚህ ጽሑፍ ውስጥ, ወደ ተግባራቸው ሳንገባ SQL እና NoSQL ለመረዳት እንሞክራለን.
በተጨማሪም፣ በመንገዳችን ላይ አንዳንድ ደስታን እናገኛለን።

SQLን ለአያቴ በማብራራት ላይ

አያቴ፣ እኔ ያንተ ብቸኛ የልጅ ልጅ እንዳልሆንኩ አድርገህ አስብ። ይልቁንም እናትና አባቴ እንደ ጥንቸል ይዋደዳሉ, 100 ልጆች ነበሯቸው, ከዚያም 50 ተጨማሪ ልጆችን ወሰዱ.

እንግዲያው ሁላችንንም ትወዳላችሁ እና የትኛውንም ስማችንን፣ ልደታችንን፣ ተወዳጅ የአይስ ክሬም ጣዕሙን፣ የልብስ መጠንን፣ የትርፍ ጊዜ ማሳለፊያዎችን፣ የትዳር ጓደኛን ስም፣ የዘር ስሞችን እና ሌሎች እጅግ በጣም ጠቃሚ የሆኑ እውነታዎችን መርሳት አይፈልጉም። እንተዀነ ግን: ንየሆዋ ኽንሕግዞ ንኽእል ኢና። ዕድሜህ 85 ነው እና ጥሩ የማስታወስ ችሎታህን መቋቋም አትችልም።

እንደ እድል ሆኖ፣ ከልጅ ልጆችዎ በጣም ብልህ በመሆኔ ልረዳው እችላለሁ። ስለዚህ ወደ ቤትዎ እመጣለሁ, አንዳንድ ወረቀቶችን አወጣሁ እና ከመጀመራችን በፊት አንዳንድ ኩኪዎችን እንድትጋግሩ እጠይቃለሁ.

በአንድ ወረቀት ላይ "" የሚባል ዝርዝር እንሰራለን.የልጅ ልጆች". እያንዳንዱ የልጅ ልጅ አሁን እንዴት እንደሆነ የሚጠቁም ልዩ ቁጥር ጨምሮ ስለ እሱ አንዳንድ ጉልህ መረጃዎች ተመዝግቧል የልጅ ልጅ እሱ ነው. እንዲሁም፣ ለድርጅት ሲባል፣ ዝርዝሩ ምን ዓይነት መረጃ እንደያዘ ሁልጊዜ ለማወቅ እንድንችል በዝርዝሩ አናት ላይ የተሰየሙ ባህሪያትን እንጽፋለን።

id
ስም
የልደት ቀን
የመጨረሻው ጉብኝት
የልብስ መጠን
ተወዳጅ አይስ ክሬም
ተቀባይነት ያላቸው

1
ጂሚ
09-22-1992
09-01-2019
L
ከአዝሙድና ቸኮሌት
የሐሰት

2
ጄሲካ
07-21-1992
02-22-2018
M
ሮክ መንገድ
እውነተኛ

ዝርዝሩን እንቀጥላለን!

የልጅ ልጆች ዝርዝር

ከተወሰነ ጊዜ በኋላ ሁሉንም ነገር ተረድተሃል እና ከዝርዝሩ ጋር ልንጨርስ ተቃርበናል! ሆኖም፣ አንተ ወደ እኔ ዞር በል፡- “የትዳር ጓደኛሞችን፣ የትርፍ ጊዜ ማሳለፊያዎችን፣ የልጅ ልጆችን ቦታ ለመጨመር ረስተናል!” ግን አይደለም፣ አልረሳንም! ይህ የበለጠ ይከተላል እና አዲስ ወረቀት ያስፈልገዋል.

ስለዚህ ሌላ ወረቀት አወጣሁ እና በላዩ ላይ ዝርዝሩን እንጠራዋለን የትዳር አጋሮች. ለእኛ አስፈላጊ የሆኑትን ባህሪያት እንደገና ወደ ዝርዝሩ አናት እንጨምራለን እና በመደዳዎች ውስጥ መጨመር እንጀምራለን.

id
የልጅ ልጅ_መታወቂያ
ስም
የልደት ቀን

1
2
ዮሐንስ
06-01-1988

2
9
ፈርናንዳ
03-05-1985

... ብዙ ባለትዳሮች!

የትዳር ጓደኞች ዝርዝር

በዚህ ደረጃ፣ ለአያቴ ማን ከማን ጋር እንደተጋባ ማወቅ ከፈለገች መመሳሰል እንዳለባት ለአያቴ አስረዳኋቸው። id በዝርዝሩ ውስጥ የልጅ ልጆች с የልጅ ልጅ_መታወቂያ በትዳር ጓደኞች ዝርዝር ውስጥ.

ከሁለት ደርዘን ኩኪዎች በኋላ ትንሽ እንቅልፍ መውሰድ አለብኝ። "አያቴ መቀጠል ትችላለህ?" ለመተኛት ነው የምሄደው።

ከጥቂት ሰዓታት በኋላ እመለሳለሁ። ጎበዝ ነሽ አያቴ! ከዝርዝሩ በስተቀር ሁሉም ነገር ጥሩ ይመስላል የትርፍ ጊዜ ማሳለፊያዎች. በዝርዝሩ ውስጥ ወደ 1000 የሚጠጉ የትርፍ ጊዜ ማሳለፊያዎች አሉ። አብዛኛዎቹ ተደጋጋሚ ናቸው; ምን ሆነ?

የልጅ ልጅ_መታወቂያ
የዕለት ተዕለት እንቅስቃሴ

1
ቢስክሌት

4
ቢስክሌት

3
ቢስክሌት

7
ሩጫ

11
ቢስክሌት

... እንቀጥላለን!

ይቅርታ፣ ለማለት ረስቼው ነበር! አንድ ዝርዝር በመጠቀም መከታተል የሚችሉት ብቻ ነው። የትርፍ ጊዜ ማሳለፊያዎች. ከዚያም በሌላ ዝርዝር ውስጥ መፈለግ አለብን የልጅ ልጆችይህን የሚያደርጉት የትርፍ ጊዜ ማሳለፊያዎች. ልንጠራው ነው። "የጋራ ዝርዝር". እንደማትወደው በማየቴ ተጨንቄ ወደ ዝርዝር ሁነታ እመለሳለሁ።

id
የዕለት ተዕለት እንቅስቃሴ

1
ቢስክሌት

2
ሩጫ

3
መዋኘት

... ተጨማሪ የትርፍ ጊዜ ማሳለፊያዎች!

የትርፍ ጊዜ ማሳለፊያዎች ዝርዝር

የትርፍ ጊዜ ማሳለፊያዎቻችንን ከያዝን በኋላ ሁለተኛውን ዝርዝራችንን እንፈጥራለን እና እንጠራዋለን "የልጅ ልጆች የትርፍ ጊዜ ማሳለፊያዎች».

የልጅ ልጅ_መታወቂያ
የትርፍ ጊዜ ማሳለፊያ_መታወቂያ

4
1

3
1

7
2

…ተጨማሪ!

የልጅ ልጆች የትርፍ ጊዜ ማሳለፊያዎች አጠቃላይ ዝርዝር

ከዚህ ሁሉ ስራ በኋላ፣ አያቴ አሁን በሚያስደንቅ ሁኔታ ትልቅ ቤተሰቧን ለመከታተል ጥሩ የማስታወሻ ስርዓት አላት። እና ከዚያ - ረዘም ላለ ጊዜ ለመቆየት - አስማታዊ ጥያቄን ትጠይቃለች: "ይህን ሁሉ ለማድረግ የት ተማርክ?"

ተዛማጅ የውሂብ ጎታዎች

ተዛማጅ ዳታቤዝ በመደበኛነት የተገለጹ ሠንጠረዦች ስብስብ ነው (በእኛ ምሳሌ እነዚህ ሉሆች ናቸው) ከሱ ማግኘት ይችላሉ የተሰጠው ወይም ሠንጠረዦቹን እንደገና ማደራጀት ሳያስፈልግ በተለያዩ መንገዶች ይሰብስቡ የውሂብ ጎታ. ብዙ አይነት ተዛማጅ የውሂብ ጎታዎች አሉ, ግን በሚያሳዝን ሁኔታ በወረቀት ላይ ያለው ዝርዝር ከእነዚህ ውስጥ አንዱ አይደለም.

በጣም የታወቁ የመረጃ ቋቶች መለያ ምልክት SQL (የተዋቀረ የመጠይቅ ቋንቋ) የመጠይቅ ቋንቋ ነው። ለእሱ ምስጋና ይግባውና አያቴ የማስታወሻ ስርአቷን ወደ ኮምፒውተር ካስተላለፈች፣ “ባለፈው አመት ያልጎበኘኝ፣ ያገባ እና የትርፍ ጊዜ ማሳለፊያ የሌለው ማን ነው?” ላሉ ጥያቄዎች በፍጥነት መልስ ማግኘት ትችላለች።

በጣም ታዋቂ ከሆኑ የ SQL የውሂብ ጎታ አስተዳደር ስርዓቶች አንዱ የክፍት ምንጭ MySQL ነው። እሱ በዋነኝነት የሚተገበረው እንደ የግንኙነት ዳታቤዝ አስተዳደር ስርዓት (RDBMS) ለድር-ተኮር የሶፍትዌር መተግበሪያዎች ነው።

አንዳንድ የ MySQL ቁልፍ ባህሪያት፡-

  • እሱ በትክክል የታወቀ ፣ በሰፊው ጥቅም ላይ የዋለ እና በሰፊው የተሞከረ ነው።
  • በ SQL እና በተዛማጅ የውሂብ ጎታዎች ልምድ ያላቸው ብዙ ችሎታ ያላቸው ገንቢዎች አሉ።
  • ውሂቡ በተለያዩ ሰንጠረዦች ውስጥ ተከማችቷል, ይህም የመጀመሪያ እና የውጭ ቁልፎችን (መለያዎችን) በመጠቀም ግንኙነቶችን መመስረት ቀላል ያደርገዋል.
  • ለመጠቀም ቀላል እና ቀልጣፋ ነው, ይህም ለትላልቅ እና ትናንሽ ንግዶች ተስማሚ ያደርገዋል.
  • የምንጭ ኮድ በጂኤንዩ አጠቃላይ የህዝብ ፈቃድ ውሎች ሾር ነው።

አሁን እርሳ ሁሉም.

NoSQL ለአያቴ በማብራራት ላይ

አያቴ፣ ትልቅ ቤተሰብ አለን። 150 የልጅ ልጆች አሏት! ብዙዎቹ ያገቡ, ልጆች አላቸው, የሆነ ነገር ይወዳሉ እና ወዘተ. በእርስዎ ዕድሜ፣ ስለ ሁላችንም ሁሉንም ነገር ማስታወስ አይቻልም። የሚያስፈልግህ የማህደረ ትውስታ ስርዓት ነው!

እንደ እድል ሆኖ፣ I አይደለም የእኔን የልደት ቀን እና ተወዳጅ የአይስ ክሬም ጣዕም እንድትረሱ በመፈለግ, ማገዝ እችላለሁ. ስለዚህ በአቅራቢያው ወዳለው ሱቅ ሮጬ ደብተር ይዤ ወደ ቤትህ ተመለስኩ።

የመጀመርያው እርምጃ “የልጅ ልጆች”ን በማስታወሻ ደብተሬ ሽፋን ላይ በትልልቅ ደማቅ ፊደላት መፃፍ ነው። ከዚያም ወደ መጀመሪያው ገጽ እገላበጣለሁ እና ስለ እኔ ማስታወስ ያለብዎትን ሁሉንም ነገር መጻፍ ጀመርኩ. ከጥቂት ደቂቃዎች በኋላ ገጹ ይህን ይመስላል።

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я"ሁሉም ነገር ዝግጁ የሆነ ይመስላል!"
አያቴ: "ቆይ የቀሩት የልጅ ልጆችስ?"
Я: "አዎ በትክክል. ከዚያም ለእያንዳንዱ አንድ ገጽ መድቡ።
አያቴ: "እኔ ለአንተ እንዳደረግኩህ ለሁሉም ሰው ተመሳሳይ መረጃ መጻፍ ይኖርብኛል?"
Я: "አይ ፣ ከፈለግክ ብቻ። ላሳይ።"
የሴት አያቴን ብእር ይዤ ገጹን ገለበጥኩ እና በጣም ስለምወደው የአጎቴ ልጅ መረጃ በፍጥነት ጻፍኩ።

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

አንዲት ሴት አያት ስለ አንድ የልጅ ልጆቿ አንድ ነገር ማስታወስ ስትፈልግ፣ በልጅ ልጆቿ ማስታወሻ ደብተር ውስጥ ወደ ትክክለኛው ገጽ ብቻ መሄድ አለባት። ስለእነሱ ሁሉም መረጃዎች እዚያው በገጻቸው ላይ ይቀመጣሉ, ይህም በፍጥነት መለወጥ እና ማዘመን ይችላል.

ሁሉም ነገር ሲጠናቀቅ አስማታዊ ጥያቄን ትጠይቃለች: "ይህን ሁሉ ለማድረግ የት ተማርክ?"

NoSQL የውሂብ ጎታዎች

ብዙ አለ NoSQL የውሂብ ጎታዎች ("SQL ብቻ አይደለም"). በምሳሌአችን አሳይተናል የሰነድ ዳታቤዝ. NoSQL የውሂብ ጎታዎች በግንኙነት የውሂብ ጎታዎች ውስጥ ጥቅም ላይ የሚውሉትን የሰንጠረዥ ግንኙነቶችን በሚያገለሉ መንገዶች መረጃን ሞዴል ያደርጋሉ። እነዚህ የውሂብ ጎታዎች በ2000 ዎቹ መጀመሪያ ላይ ግልጽ በሆነ የመለኪያ መስፈርቶች (እንደ ፌስቡክ) ምክንያት ደመናን መሰረት ያደረገ የውሂብ ጎታ ማሰባሰብ በሚያስፈልጋቸው ኩባንያዎች ታዋቂ ሆኑ። በእንደዚህ አይነት አፕሊኬሽኖች ውስጥ የውሂብ ወጥነት ከአፈጻጸም እና ከመስፋፋት በጣም ያነሰ አስፈላጊ ነበር።

መጀመሪያ ላይ፣ የNoSQL ዳታቤዝ ብዙ ጊዜ ለጥቃቅን የውሂብ አስተዳደር ተግባራት ያገለግል ነበር። በመሠረቱ፣ ወደ ድር እና የደመና አፕሊኬሽኖች ሲመጣ፣ NoSQL የውሂብ ጎታዎች ከፍተኛ መጠን ያለው ውሂብን ሰርተው አሰራጭተዋል። የNoSQL መሐንዲሶች እንዲሁ በተዘመኑ አፕሊኬሽኖች ላይ ፈጣን ለውጦች እንዲደረጉ ተለዋዋጭ ዳታ ፕላኑን (ወይም እጥረት) ወደውታል።

የNoSQL ቁልፍ ባህሪዎች

  • ውሂብ ለማከማቸት በጣም ተለዋዋጭ መንገድ
  • አግድም ልኬት ወደ ዘለላዎች
  • በፅናት/መስፋፋት የሚቻል ቅደም ተከተል
  • ልዩ ቁልፎችን በመጠቀም ተለይተው የሚታወቁ ሰነዶች

ዝርዝር ንጽጽር

MySQL የተገለጸ እና የተዋቀረ ንድፍ ያስፈልገዋል።
NoSQL ማንኛውንም ውሂብ በ "ሰነድ" ውስጥ እንዲያከማቹ ይፈቅድልዎታል.

MySQL ትልቅ ማህበረሰብ አለው።
NoSQL ትንሽ እና በፍጥነት እያደገ ያለ ማህበረሰብ አለው።

NoSQL ለመለካት ቀላል ነው።
MySQL ተጨማሪ አስተዳደር ያስፈልገዋል።

MySQL በብዙ የውሂብ ጎታዎች ውስጥ ጥቅም ላይ የሚውል SQL ይጠቀማል።
NoSQL ታዋቂ አተገባበር ያለው የውሂብ ጎታ ላይ የተመሰረተ ንድፍ ነው።

MySQL መደበኛ የመጠይቅ ቋንቋ (SQL) ይጠቀማል።
NoSQL መደበኛ የመጠይቅ ቋንቋ አይጠቀምም።

MySQL ብዙ ምርጥ የሪፖርት ማድረጊያ መሳሪያዎች አሉት።
NoSQL ደረጃውን የጠበቀ ለማድረግ አስቸጋሪ የሆኑ በርካታ የሪፖርት ማድረጊያ መሳሪያዎች አሉት።

MySQL ለትልቅ ውሂብ የአፈጻጸም ጉዳዮችን ሊያሳይ ይችላል።
NoSQL በትልቁ ውሂብ ላይ ጥሩ አፈጻጸም ያቀርባል።

ሀሳቦች 8 መሠረት

በኩባንያው ውስጥ 8 መሰረትበምሰራበት ቦታ ለእያንዳንዱ ፕሮጀክት በAWS ላይ ከሚስተናገደው አውሮራ MySQL ተዛማጅ ዳታቤዝ ጋር እናቀርባለን። NoSQL ማመልከቻዎ ከፍተኛ አፈጻጸም እና መጠነ-ሰፊነት ሲፈልግ አመክንዮአዊ ምርጫ ቢሆንም፣ በዲቢኤምኤስ የቀረበው ጠንካራ የውሂብ ወጥነት SaaS አፕሊኬሽኖችን እና ሌሎች የንግድ ሶፍትዌሮችን በሚገነቡበት ጊዜ አስፈላጊ ነው ብለን እናምናለን።

ለጀማሪዎች እና ገንቢዎች ሪፖርት ማድረግን ፣ የግብይት ትክክለኛነትን እና በደንብ የተገለጹ የውሂብ ሞዴሎችን ለሚገነቡ የንግድ መተግበሪያዎች ግንባታ በግንኙነት የውሂብ ጎታዎች ላይ ኢንቨስት ማድረግ በኛ አስተያየት ትክክለኛ ምርጫ ነው።

በAurora፣ Serverless እና GraphQL ስለማሳደግ በ8base.com የበለጠ ይወቁ እዚህ.

ምንጭ: hab.com

አስተያየት ያክሉ