কেন ওরাকল টেবিল / কলাম / সূচকের নামগুলি 30 টি অক্ষরের মধ্যে সীমাবদ্ধ?


149

আমি বুঝতে পারি যে বহু বছর আগে এই ধরণের সীমাবদ্ধতা ছিল, তবে আজকাল অবশ্যই এই সীমাটি সহজেই বাড়ানো যেতে পারে। আমাদের অবজেক্টগুলির জন্য নামকরণের কনভেনশন রয়েছে, তবে সর্বদা এমন একটি ক্ষেত্রে দেখা যায় যেখানে আমরা এই সীমাটি আঘাত করি - বিশেষত বিদেশী কীগুলির নামকরণে।

কেউ কি আসলেই জানেন যে এটি কেন বড় আকার নয় - বা এটি 11 গ্রামে বড়?


আপাতদৃষ্টিতে উত্তরটি হ'ল এটি বর্তমানে এমন স্ক্রিপ্টগুলি ভেঙে দেবে যা ডিফেন্সিয়ালি কোডেড নয়। আমি যে একটি খুব উদ্বেগজনক জিনিস, ওরাকল হতে চেষ্টা করা হয় , নিশ্চয় এই জিনিস যে আপনি ক্রমাগত উন্নতি আবশ্যক ধরনের, অন্যথায় আপনার পণ্যের একটি হাজার মধ্যেও মৃত্যুর মারা যাবে ডাটাবেস।

আমি যখনই ঘরে বসে এই ধরণের আপত্তি দেখি তখন আমার মনে হয় বুলেটটি কামড়ানোর এবং বাছাই করার সময় এসেছে। লোকেরা যদি স্ক্রিপ্টগুলি চালাচ্ছে যা তারা ওরাকল সংস্করণগুলিকে আপগ্রেড করার সময় চেক বা রক্ষণাবেক্ষণ করে না, তবে তাদের সেই পছন্দের পরিণতি ভোগ করতে দিন। 4000 আকার পর্যন্ত আকারের তাদের একটি সামঞ্জস্যতা পতাকা সরবরাহ করুন, তারপরে যখন নামটি 'ওকে' আছে তা পরীক্ষা করার জন্য আমি ক্রমাগত 30 টি গণনা করার অবজেক্ট তৈরি করছি তখন আমাকে নষ্ট সময় বাঁচান।


3
যেহেতু একটি সীমা থাকা দরকার? এটি 64 টি অক্ষর করুন এবং আপনি সম্ভবত এমন কাউকে জিজ্ঞাসা করবেন কেন এটি 128 ইত্যাদি নয় .. টুকরো টুকরো কতদিন?
চেয়ারম্যান

45
সত্য, তবে 30 টি স্ট্রিংয়ের একটি খুব ছোট অংশ। কেন এটি 4000 হতে পারে না - একটি ভার্চর 2 এর আকার - কিউরিটিকে একবার পার্স করার পরে ওরাকল কি সত্যিই যত্নশীল?
ক্রিস গিল

22
@ চ্যারিমন পোস্টগ্র্যাস এসকিউএল আমাকে characters৩ টি অক্ষরের মধ্যে সীমাবদ্ধ করে এবং দৈর্ঘ্যের সীমা নিয়ে আমার কোনও সমস্যা হয়নি। এটি যথেষ্ট বড় যে আমার নামগুলি খাপ খায় এবং আমি যদি আরও দীর্ঘ নাম বিবেচনা করি তবে সময় পঠনযোগ্যতার নেতিবাচক প্রভাব সম্পর্কে চিন্তাভাবনা শুরু করে। ফ্লিপ দিকে, আমি প্রায়শই ওরাকলে নাম দৈর্ঘ্যের সীমাতে চলে যাই এবং 30 অক্ষরের সীমাবদ্ধতার কারণে আমার নামের পঠনযোগ্যতা হ্রাস করতে বাধ্য হয় । কিছু লোক a৪ সীমা সম্পর্কে অভিযোগ করতে পারে তবে ৩০ টি চরিত্রের সীমাবদ্ধতার কারণে অনেক লোকের ইতিমধ্যে সমস্যা রয়েছে। এটি ব্যবহারের 99% ক্ষেত্রে পূরণের বিষয়ে এবং ওরাকল এখানে ব্যর্থ।
jpmc26

1
আসুন, ওরাকল, আপনি ডাইনোসর হয়ে গেছেন! মাইক্রোসফ্ট এসকিউএল সার্ভারকে আরও বন্ধুত্বপূর্ণ করতে একটি ভাল কাজ করছে। এখন নামের দৈর্ঘ্যের সীমাটি শিথিল করুন।
user3454439

1
ফাস্ট ফরোয়ার্ড ওরাকল 12cR2, এটা 128 পরিবর্তে বাইট 30 :-) এখন docs.oracle.com/en/database/oracle/oracle-database/12.2/newft/...
স্টিফান এল

উত্তর:


71

আমি বিশ্বাস করি এটি এএনএসআই স্ট্যান্ডার্ড।

সম্পাদনা করুন:

আসলে, আমি মনে করি এটি এসকিউএল -২২ স্ট্যান্ডার্ড।

মানকটির পরবর্তী সংস্করণটি 128 অক্ষরের নামের জন্য বৈকল্পিকভাবে মঞ্জুরি দেয় বলে মনে হয়, তবে ওরাকল এখনও এটিকে সমর্থন করে না (বা এটির জন্য আংশিক সমর্থন রয়েছে, যদিও এটি 30 টি অক্ষরের অনুমতি দেয় mm হুমম্ম।)

এই পৃষ্ঠায় "এফ 391, দীর্ঘ শনাক্তকারী" অনুসন্ধান করুন ... http://stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/ap_standard_sql001.htm

(রেফারেন্ট খুঁজছেন)


1
হুম, আমি কীভাবে এই নথিটি পড়ি তা নয়। এটি আমাকে বলে যে F391 এসকিউএল / ফাউন্ডেশন অনুচ্ছেদে (যা কিছু হোক না কেন) একটি আইটেম, এবং 30 অক্ষরের সীমা সহ ওরাকল এর জন্য আংশিক সমর্থন রাখে।
স্কাফম্যান

21
আংশিকভাবে সম্মতি। কি কৌতুক. "আমাদের স্ক্রুগুলি মেট্রিক নয় তবে এগুলি মেট্রিক মানকে আংশিকভাবে মেনে চলে।"
জেনস স্কাউডার

5
আমি এফ 391 টি বিশদটি বিস্তারিতভাবে পড়িনি, তবে আমি ধরে নিচ্ছি (সম্ভবত ভুলভাবে) যে "লং আইডেন্টিফায়ার্স" বলতে শনাক্তকরণের দৈর্ঘ্য 30 থেকে 128 বৃদ্ধি করা হয় So সুতরাং আপনি 30 টি অক্ষরের অনুমতি দিয়ে "আংশিকভাবে" এটি সমর্থন করে বলছেন কিছুটা কৌতুকপূর্ণ আপনি নতুন স্ট্যান্ডার্ডকে সমর্থন করেন না, আপনি এখনও পুরানো মানকে সমর্থন করেন (যদিও 25% নতুন স্ট্যান্ডার্ডের পথে) এটি কি কোনও বোঝায়? !!?
cagcowboy

7
এসকিউএল -২ standard স্ট্যান্ডার্ডটি এখানে অবদান.অ্যান্ড্রুআর.সি.এম.ইউ / hadশাদো / এসকিএল / এসকিএল ১৯৯২.টিএসটিএস্ট রয়েছে , তবে আপনি যদি "এসকিউএল আইটেমের বর্ণনাকারী অঞ্চলের বিবরণ ১ 17.১" পড়েন তবে এটিতে নাম এবং স্কিমার মতো সনাক্তকারীকে কমপক্ষে 128 এর অনুমতি দিতে হবে চরিত্র.
রিক

46
ওরাকল ফ্যানবয়গুলি 30+ চরের শনাক্তকারীদের কার্যকারিতা দেখতে পাবে না এ বিষয়টি খুব বিরক্তিকর। "আপনার নামগুলি অর্থবহ / বর্ণনামূলক করুন, উটের মামলার পরিবর্তে আন্ডারস্কোর ব্যবহার করুন এবং 30 টি অক্ষরের নীচে থাকুন"। এটি কখনই 30 টির বেশি অক্ষরের চেয়ে বেশি যাবে না । Amirite? আপনার সংক্ষিপ্তসারগুলি সংক্ষিপ্ত করার মতো এবং যখন নামগুলির কোনওটিই বোঝা যায় না, ডকুমেন্টেশনটি পড়া / আপডেট করার জন্য সারা দিন ব্যয় করুন।
অ্যাডাম জোন্স

45

এটি এসকিউএল স্ট্যান্ডার্ড থেকে উদ্ভূত ক্যাগকোবয়ের বক্তব্য ছাড়াও (icallyতিহাসিকভাবে, আমি সন্দেহ করি যে ওরাকলের এসকিউএল স্ট্যান্ডার্ডের দিকে ওরাকলের সিদ্ধান্ত নিয়েছে যেহেতু ওরাকল এসকিউএলকে মানককরণের পূর্বাভাস দিয়েছিল), আমি বাজি থাকব যে দীর্ঘতর শনাক্তকারীদের অনুমতি দিতে অনীহারের একটি বড় অংশ এসেছে লক্ষ লক্ষ কাস্টম স্ক্রিপ্ট সহ কয়েক মিলিয়ন ডিবিএ রয়েছে এই উপলব্ধি যে সমস্ত অনুমান করে যে সনাক্তকারীরা 30 টি অক্ষর দীর্ঘ long কোডের প্রতিটি লাইনকে এমন কিছু করার অনুমতি দেওয়া হচ্ছে যা এরকম কিছু হয়

  l_table_name VARCHAR2(30);
BEGIN
  SELECT table_name
    INTO l_table_name
    FROM dba_tables
   WHERE ...

হঠাৎ ভাঙ্গতে কারণ ডিবিএ 15 বছর আগে DBA_TABLES.TABLE_NAME%TYPEস্ক্রিপ্টের পরিবর্তে VARCHAR2 (30) ব্যবহার করেছিল ব্যাপক বিদ্রোহের কারণ হতে পারে। আমি বাজিয়ে দেব যে ওরাকল একা হাজারে এমন জায়গা রয়েছে যেখানে বছরের পর বছর ধরে বিভিন্ন প্যাকেজ এবং উপাদানগুলিতে এই ধরণের জিনিস করা হয়েছে। লম্বা শনাক্তকারীদের সমর্থন করার জন্য বিদ্যমান সমস্ত কোডকে পুনঃনির্মাণ করা একটি দুর্দান্ত প্রকল্প হবে যা প্রায় অবশ্যই তৈরি করবে পথ ডেভেলপার সময় আরও খরচ, QA তে সময়, এবং সদ্য চালু বাগ তুলনায় এটি সুবিধা উৎপন্ন হবে।


13
+1 এটি প্রায় অবশ্যই ওরাকল এর বহু উত্তরাধিকার ডিজাইনের পঙ্গুগুলির মধ্যে একটি।
স্কাফম্যান

43
অবশ্যই এটি একটি যুগল বাড়ানোর এবং এটি বাড়ানোর সময় - একটি পতাকা যুক্ত করুন যাতে ডিবিএরা 30 এটিকে আবার সংশোধন করতে পারে this এই জাতীয় উত্তরাধিকার সংক্রান্ত সমস্যাগুলি সর্বদা মুখোমুখি হওয়া এবং সাজানো উচিত অন্যথায় আপনি সম্পূর্ণ কোড বেসটি বিকল করে ফেলুন, এবং লোকেরা কেবল সরে যাবে অন্য কোনও কিছুর উপরে
ক্রিস গিল

6
ডিবিএ লিখিত কোডের কয়েক মিলিয়ন লাইনই নয়, প্রচুর পরিমাণে ওরাকল অভ্যন্তরীণ কোডও এতে সন্দেহ নেই। এই বিষয়টি স্টিভেন ফেয়ারস্টেইনের সাথে একটি অধিবেশনে উঠে এসেছিল এবং তিনি বলেছিলেন যে তারা ভাবেন না যে তারা কখনই এটি পরিবর্তন করতে পারে।
ম্যাথু ওয়াটসন

10
তারা একে একে নতুন বৈশিষ্ট্য হিসাবে হুবহু বলতে পারল না, তারা ... তারা সীমা প্রসারিত করতে অনেক সময় ব্যয় করবে এবং তারপরে "আপনি এখন ৩০ টি অক্ষরের চেয়ে বেশি নাম ব্যবহার করতে পারবেন!" ঘোষণা করুন। তারা হাসিখুশি স্টক হবে।
skaffman

9
আপনি যদি এখনও 15 বছরের পুরানো স্ক্রিপ্ট ব্যবহার করেন তবে কিছু অত্যন্ত চূড়ান্ত । এছাড়াও, এগুলি ঠিক করা এক সময়ের ব্যয় হবে (সম্ভবত অব্যাহত রক্ষণাবেক্ষণের জন্য আরও কিছু সহ), যদিও বিকাশকারীরা অনির্দিষ্টকালের জন্য মারাত্মক সংক্ষিপ্ত সংক্ষিপ্ত নামগুলি আঁকিয়ে সময় নষ্ট করে চলবে। @ স্কাফম্যান এটিকে ঠিক না করার জন্য তারা ইতিমধ্যে একটি হাসির স্টক (এবং আধুনিকতার যুগে যুগে যুগে অন্যান্য নকশাকৃত সিদ্ধান্ত, যেমন কোনও বুলিয়ান বা অটো-ইনক্রিমেন্টিংয়ের মতো নয়), যতটা আমি উদ্বিগ্ন।
jpmc26

11

আমি এটি সন্ধান করছি এবং গুগলের মাধ্যমে এই প্রশ্নটি পেয়েছি, কিন্তু এটিও খুঁজে পেয়েছি যে ওরাকল 12 সি রিলিজ 2 (12.2) হিসাবে, এটি আর কঠোরভাবে হয় না। ( https://oracle-base.com/articles/12c/long- شناختfiers-12cr2 )

এক পর্যায়ে প্রতিটি ডিবিএ বা বিকাশকারী এমন একটি পয়েন্টে পৌঁছে যাবে যেখানে বস্তুর নামের 30 অক্ষরের সীমা একটি সমস্যা তৈরি করেছে। এসকিউএল সার্ভার বা মাইএসকিউএল থেকে ওরাকল এ মাইগ্রেশন প্রকল্পগুলি করার সময় এই সীমাটি অত্যন্ত বেদনাদায়ক হতে পারে। ওরাকল ডেটাবেস 12 সিআর 2 তে, সর্বাধিক সনাক্তকারীগুলির সর্বোচ্চ দৈর্ঘ্য এখন 128 টি অক্ষর characters

( Http://blog.dbi-services.com/oracle-12cr2-long-uthorfiers/ ) অনুসারে এটি 12.2 এ একটি নতুন বৈশিষ্ট্য । সেই পোস্ট অনুসারে, 12.1 এখনও 30 টি অক্ষরে সীমাবদ্ধ ছিল।


সম্পাদনা করুন: পরিবর্তনটির ব্যাখ্যা প্রদান করে অফিসিয়াল ওরাকল ডকুমেন্টেশনের একটি লিঙ্ক এখানে। ( https://docs.oracle.com/cloud/latest/exadataexpress-cloud/CSDBF/longer- شناختfier-names.htm#CSDBF-GUID-F4CA155F-5A37-4705-8443-0A8C9E3F875C )

ওরাকল ডাটাবেস 12 সি রিলিজ 2 (12.2) দিয়ে শুরু করে, বেশিরভাগ ধরণের ডাটাবেস অবজেক্টের জন্য সনাক্তকারী নামগুলির সর্বাধিক দৈর্ঘ্য 128 বাইটে বাড়ানো হয়েছে।


128 বাইট / 4 বাইট (ইউনিকোড) = 32 টি অক্ষর। কমপক্ষে আমার বোধগম্যতা হল যে ইউনিকোডবিহীন অক্ষরের জন্য 4 বাইটগুলি অস্বাভাবিক নয়? আমার ভাবতে হবে যে, এর অর্থ এই যে তারা এখন ইউনিকোডকে সমর্থন করছে? ঠিক যেমন VARCHAR2(2)2 অক্ষর নয় 2 বাইট বোঝায়।
শেঠ

1
আমি আপনার পয়েন্টটি দেখতে পাচ্ছি, তবে অক্ষর বনাম বাইটগুলি আপনার ডাটাবেসের অক্ষর সেটের উপর নির্ভর করে। এই সেটিংটি চর ডেটাটাইপগুলির জন্য এনকোডিং (যেমন ভেরচার 2) পাশাপাশি ডিবি সনাক্তকারীদের জন্য এনকোডিং নির্ধারণ করে। এটি জাতীয় চরিত্রের সেটটির সাথে বিপরীতে রয়েছে, যা এনসিআর ডেটাটাইপগুলির জন্য ব্যবহৃত হয়। হ্যাঁ, আপনার যদি এমন কোনও এনকোডিং থাকে যাতে আপনার শনাক্তকারীরা প্রতি চরিত্রের জন্য 4 বাইট ব্যবহার করছেন (ধরে নিচ্ছেন যে এটি ডিবি চরিত্র সেট হিসাবে ব্যবহার করা যেতে পারে) তবে আপনার এখন of এর পরিবর্তে 32 হবে But তবে আমি মনে করি সর্বাধিক ব্যবহারের ক্ষেত্রে শনাক্তকারীরা একক বাইট অক্ষর।
কানমুরি

6

শনাক্তকারীর দৈর্ঘ্যের সীমাবদ্ধতার ব্যবহারিক প্রয়োজনীয়তা দেওয়া হয়েছে, যখন নামগুলি একে অপরের সাথে এবং উপসর্গ এবং প্রত্যয়গুলির সাথে মিলিত হয় তখন সিলিংটি আঘাত করা এড়াতে ভাল নকশা প্রকৃত নামের দৈর্ঘ্যকে সীমাবদ্ধ করে।

উদাহরণস্বরূপ, বিদেশী কী বাধাগুলির নামকরণের একটি সম্মেলন

FK_<table1>_<table2> 

টেবিলের নামগুলি 13 টি অক্ষর বা তার চেয়ে কম সীমাবদ্ধ করে; সর্বাধিক ডাটাবেসের আরও টেক্সট নামের দৈর্ঘ্যকে সীমাবদ্ধ করে আরও উপসর্গ এবং প্রত্যয় প্রয়োজন হয়।


5

সীমাবদ্ধতা লঙ্ঘনের এসকিউএলআরআরএম-তে প্রতিবেদন করা হয় যা 255 টি অক্ষরের মধ্যে সীমাবদ্ধ এবং বেশিরভাগ ক্লায়েন্ট ত্রুটিগুলি দৃশ্যমান করতে ব্যবহার করে। আমি সন্দেহ করি যে বাধা নামগুলির অনুমোদনযোগ্য আকার বৃদ্ধি করা লঙ্ঘনের বিষয়ে উল্লেখ করার ক্ষমতাকে উল্লেখযোগ্যভাবে প্রভাবিত করবে (বিশেষত যেখানে পিএল / এসকিউএল কোডের কয়েকটি স্তর মাধ্যমে একটি সীমাবদ্ধতা লঙ্ঘন হয়েছে)।


তো, আহ, সেই টেবিলটিকে আরও বিস্তৃত করুন, তাহলে?
skaffman

2
এটি কোনও টেবিল নয়, তবে ক্লায়েন্ট সফ্টওয়্যার কীভাবে ডাটাবেস থেকে ত্রুটি পায়।
গ্যারি মায়ার্স

@ স্কাফম্যান এসকিউএলআরআরএম দৈর্ঘ্য একটি এপিআই / এবিআইর নির্দিষ্টকরণ। এটির পরিবর্তনের অর্থ গ্রহের প্রতিটি ওসিআই ড্রাইভারকে প্যাচ করা হবে (অন্যথায় বাফার ছাড়িয়ে যাবে)। আমার ধারণা, ওসিআই ১৩-তে বুফলেন বাড়াতে এবং ক্লায়েন্টে ওরেচল ১৫ এর মতো সার্ভারে স্লট করতে পারে, যেখানে ওসিআই 10 ক্লায়েন্ট আর সমর্থিত হবে না, আমি মনে করি। (সম্ভবত তারা এখন এটি বিবেচনাও করছে, তবে কেবল কয়েক বছর পরেই ওরাকল প্রধান সংস্করণ প্রকাশিত হয়; এবং যখন অ্যাপ্লিকেশনগুলি বিভিন্ন সার্ভার / ক্লায়েন্টে স্থানান্তরিত হয় তখন আমরা স্ক্রিপ্ট / অ্যাপ্লিকেশন আপগ্রেড ব্যথায় চলতে পারি)।
কাওবার্ট

4

আমি বিশ্বাস করি যে 30 টি চরিত্র শনাক্তকরণের দৈর্ঘ্যটি সিওবিওএল থেকে আসে যা 1950 এর দশকের শেষের দিকে মানক করা হয়েছিল। যেহেতু COBOL প্রোগ্রামগুলি এসকিউএল (এবং তার আগে সিকুয়েল (এবং তার আগে কোয়েল) এর প্রধান ব্যবহারকারী ছিল, এটি অবশ্যই সনাক্তকারী দৈর্ঘ্যের জন্য একটি যুক্তিসঙ্গত সংখ্যার মতো মনে হয়েছিল।


5
আমি বিশ্বাস করি যে ওরাকলের প্রথম সংস্করণটি ফর্ট্রানে লেখা হয়েছিল, যা আমার মনে হয় একটি সনাক্তকারী দৈর্ঘ্যের সীমা 31 আছে Maybe সম্ভবত এটি প্রাসঙ্গিক।
ডেভিড অ্যালড্রিজ 18

4

এই সমস্ত 'প্রতিবন্ধকতা' process০ এর দশকের প্রসেসরের আর্কিটেকচারের দ্বারা আরোপিত সীমাবদ্ধতার প্রতিক্রিয়া থেকে যায়। সেই সময় থেকে প্রসেসরগুলি এমনভাবে বিকশিত হয়েছে যে এই সীমাবদ্ধতাগুলির আর প্রয়োজন নেই; তারা ঠিক বাকি আছে। তবে এগুলি পরিবর্তন করা আরডিবিএমএস-র লেখকদের কাছে একটি বিগ চুক্তি। যেহেতু এই দৈর্ঘ্যের সীমাবদ্ধতাগুলি নীচে প্রবাহের পরিবর্তনের পরিবর্তে উইলির নীল সব কিছুকে প্রভাবিত করে বলে একটি দীর্ঘ প্রক্রিয়া নাম বলতে পারে এবং সম্ভবত অব্যাহতি প্রতিবেদন, ডেটা ডিকশনারি ইত্যাদির মতো আরও অনেক কিছু ভেঙে ফেলবে। আমার ওরাকল আরডিবিএমএসের একটি নতুন পুনর্লিখনের প্রয়োজন হবে।


2

প্রশ্নের প্রত্যক্ষ উত্তর হ'ল ওরাকল স্টাইলটি পুরানো ধারণাগুলি থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছে যার মধ্যে 30 টি অনেক বেশি মনে হয়েছিল এবং ডিকশনাল ক্যাশেগুলিকে আদর্শ ডেটাবেসে রিয়েল মেমরি থেকে আনপিন করার ঝুঁকি আরও বাড়িয়ে তুলেছিল।

বিপরীতে, ওডিবিসি নেমস্পেসটি খুব আলাদা জায়গা থেকে আসে, যেখানে এক্সেল শীটে একটি টেবিল বিশ্লেষণ করে ডেটা সেটগুলি দ্রুত বের করা হয় এবং শীট টেবিল শিরোনামগুলি থেকে নেওয়া কলামের নামগুলি সহ স্বয়ংক্রিয়ভাবে ডাটাবেস টেবিলগুলি তৈরি করা হয়। এরকম চিন্তাভাবনা আপনাকে এমন শনাক্তকারীদের অনুমোদনের দিকে নিয়ে যায় যা এমনকি এম্বেড করা ক্যারেজ রিটার্ন এবং অবশ্যই বিশেষ অক্ষর এবং মিশ্র কেস ধারণ করে। এটি একটি বোধগম্য বিমূর্ততা কারণ এটি আজকের ডেটা বিশ্লেষকরা যেভাবে মনে করেন তার মডেল।

এসকিউএল 92 মনে করবেন না, এটি ওডিবিসি সম্মতি যা সত্যই আজকের সার্বজনীন ডাটাবেসের জন্য গুরুত্বপূর্ণ, এবং অন্যান্য বিক্রেতারা এটি ওরাকেলের চেয়ে ভালভাবে সম্বোধন করেছেন। এমনকি টেরাদাতা, উদাহরণস্বরূপ, যা অনেকগুলি বিস্তৃত খেলোয়াড় হিসাবে দেখা যায় না, টুডাব্লু নামফলকগুলি সরবরাহ করে, উদ্ধৃতি সহ এবং ছাড়াই, 30 টি চার সীমা সহ পূর্ববর্তী, পরে একটি সম্পূর্ণ ওডিবিসি বাস্তবায়ন যেখানে অদ্ভুত দীর্ঘ শনাক্তকারীদের জন্য প্রস্তুত করা হয় ।

এমনকি চিরাচরিত বৃহত ডাটাবেস অঙ্গনেও 30 টি অক্ষর একটি সমস্যা হয় যেখানে নামগুলি অর্থবহ, ধারাবাহিক এবং স্মরণীয় হয়ে থাকে। একবার আপনি ভূমিকা-নামক উত্তরাধিকারের সাথে বিশেষ কাঠামোগুলি ডিজাইন করা শুরু করলে সংক্ষেপণগুলি সংক্ষেপণ শুরু করে, এবং অবিচ্ছিন্নতা শীঘ্রই মারা যায়, উদাহরণস্বরূপ, একই মূল শনাক্তকারীর একটি টেবিলের নাম বা কলামের নাম হিসাবে রেন্ডার করা হবে এক ক্ষেত্রে আরও সংক্ষিপ্তসার প্রয়োজন এবং অন্যটি নয় । যদি উল্লেখযোগ্য সংখ্যক প্রকৃত ব্যবহারকারীকে এই স্তরগুলিতে আমন্ত্রণ জানানো হয় তবে ফলাফলগুলি খুব খারাপ ব্যবহারযোগ্যতা এবং সৌভাগ্যক্রমে যে কোনও বয়স্ক ডাটাবেসের জন্য এখন মূল ড্রাইভটি অবজেক্ট স্তর এবং বিআই সরঞ্জামগুলির মাধ্যমে ব্যবহারকারীকে ডাটাবেস থেকে পৃথক করা।

এটি ডিবিএ এবং ডেটা আর্কিটেক্ট দলগুলিতে ডেটাবেস স্তর ছেড়ে দেয়, যারা সম্ভবত এটির উদ্বিগ্ন নয়। সংক্ষিপ্তসার স্কিমগুলি কাজ করা এখনও জীবনের একটি কাজ বলে মনে হয়।

যে ওরাকল এই পুরানো সীমাবদ্ধতার দিকে নজর দেয়নি সম্ভবত এটি বেশিরভাগ ক্ষেত্রে প্রতিফলিত করে যে এটি দীর্ঘতর সনাক্তকারী ব্যবহার করে নির্মিত ডেটাবেস ডিজাইনের সরাসরি পোর্ট করতে না পারলে এটি তার প্রতিযোগিতায় বেশি ব্যবসা হারাচ্ছে না (এখনও)।


ওরাকলকে নয়। ওডিবিসি একটি মাইক্রোসফ্ট বাচ্চা, জাভা নয়। এটি এখনও ওসিআই-এর বিপরীতে যুক্ত একটি পৃথক সহায়ক লিব (তাত্ক্ষণিকভাবে কীভাবে মোতায়েন করা হয়েছে তা দেখুন - তাত্ক্ষণিক চালকের সাথে ওডিবিসি কাজ করার জন্য আপনাকে ওসিআই ড্রাইভার এবং ওডিবিসি তাত্ক্ষণিক জিপ উভয়ের প্রয়োজন)। ওরাকলের প্রাথমিক ক্লায়েন্ট প্ল্যাটফর্ম (লিগ্যাসি প্রো * সি / সি / সি ++ ছাড়াও) জেডিবিসি, যা ওডিসির সাথে সরাসরি যুক্ত, ওডিবিসি নয়।
কাওবার্ট

1

উপরের সমস্ত মন্তব্য সঠিক, তবে আপনাকে আর লম্বা নামগুলির পারফরম্যান্স ব্যয়ের বিষয়টি মাথায় রাখতে হবে। নব্বইয়ের দশকের গোড়ার দিকে, যখন ইনফর্মিক্স বিশাল ওষুধ স্থাপন করে "ওরাকেলের চেয়ে আরও দ্রুত ইনফর্মিক্স!" আরাকল সদর দফতরের পাশে 101 রুটে, ইনফর্মিক্সের জন্য কেবলমাত্র 18 টি অক্ষরের চেয়ে কম সংখ্যক টেবিলের নাম অনুমোদিত! কারণটি সুস্পষ্ট - তাদের আক্ষরিক আকারে টেবিলের নামগুলি (যেমন 't138577321'র পরিবর্তে প্রকৃত নাম হিসাবে বা এর মতো কোনও কিছু) ডেটা অভিধানে সঞ্চিত রয়েছে। লম্বা নামগুলি বৃহত্তর ডেটা অভিধানের সমান, এবং যেহেতু ডেটা ডিকশনারিটি প্রতিবার পড়া হয় যখন কোনও প্রশ্নের জন্য একটি হার্ড পার্সের প্রয়োজন হয়, তাই একটি বৃহত্তর ডেটা ডিকশনারিটি দুর্বল পারফরম্যান্সের সমান ...


7
আপনি যদি কয়েক বিলিয়ন বার না করে থাকেন তবে কোনও আধুনিক সফ্টওয়্যারটিতে সংক্ষিপ্ত স্ট্রিংগুলির সঠিক মিলের কোনও কারণ নেই — যা ক্যোরি পার্সিংয়ের ক্ষেত্রে নয়। ওরাকলের এই অংশটি প্রথম ডিজাইন করা হলেও আকার-পারফরম্যান্স বিবেচনাগুলি তাত্পর্যপূর্ণ হতে পারে তবে তারা আজকাল সত্যিই প্রাসঙ্গিক নয়।
সারা জি

-7

ঠিক আছে, সীমাবদ্ধতা বিদ্যমান ....

তবে আপনি কি কোনও টেবিল / সূচক / কলামের নামকরণের জন্য 30 টির চেয়ে বেশি চরিত্রের প্রয়োজন?

প্রশ্নগুলি লেখার সময়, এই সীমাবদ্ধতার সাথে আমি কিছু কলাম / টেবিলের নাম বিরক্তিকর খুঁজে পাই। সীমাটি যদি উচ্চতর হয় তবে আমি টেবিলগুলিতে দৌড়াতে পারি যার জন্য কোনও প্রশ্নের প্রয়োজন:

select unique_identifier_column, 
time_when_the_user_remembered_to_change_the_row_in_the_receipt_table, 
foreign_key_to_the_ap_invoice_distributions_history_table_related_to_the_all_rows_table 
from ap_invoices_really_really_all_all_rows_present_in_this_ebs_table.

আমি বিশাল শব্দটির জন্য ক্ষমা চাইছি: পি


29
তারা যোগদানকারী উভয় টেবিল এবং কলামের নাম সহ বিদেশী কীগুলির নাম রাখতে সক্ষম হবেন - তাই বিদেশী কী ব্যতিক্রম ছুঁড়ে ফেলা হলে আপনাকে ব্যর্থতার কারণ হিসাবে কলামগুলি সন্ধান করতে হবে না। তারপরে আবার ওরাকল আপনাকে সেই তথ্যটি বলতে পারল ...
ক্রিস গিল

10
আমাদের 30 টিরও বেশি অক্ষরের প্রয়োজনের অনেকগুলি কারণ রয়েছে, যদিও সাধারণত 30 টি অক্ষরই যথেষ্ট। অর্থপূর্ণ হওয়ার জন্য কোনও সময় কোনও টেবিলের নাম পর্যাপ্ত ভার্বোস হওয়া দরকার। উদাহরণস্বরূপ, আমার কাছে এই টেবিল কলটি রয়েছে sch_PatternRunTimeException, এটি হ'ল 30 অক্ষর দীর্ঘ। এখন, আমাকে একটি মিররিং টেবিল কল যুক্ত করতে হবে sch_DevPatternRunTimeException। এই অতিরিক্ত 3 টি অক্ষরের নামকরণ মানটি ওরাকলটির জন্য কাজ করছে না, এমএসএসকিউএল কোনও সমস্যা নেই। এটি আমাকে একটি নতুন নাম নিয়ে আসতে বাধ্য করছে। টেবিলটির নামকরণ করণীয়, তবে এটি আমাদের গ্রাহকদের ক্রিয়াকলাপকে প্রভাবিত করবে, যা আমরা এড়াতে চেষ্টা করি।
dsum

6
যদি সম্ভাব্য ক্ষেত্রে 99.9% শতাংশে +30 অক্ষরগুলি বিরক্তিকর হয় তবে এর অর্থ এই নয় যে তারা অন্য 0.1% উপকারে আসবে।
রেনে নিনফেনিগার

14
আঃ আঃ পিচ্ছিল slাল তর্ক। মাত্র 4 টি বর্ণমালার অক্ষরের একটি সীমা আমাদের 1 মিলিয়নের বেশি টেবিলের সংমিশ্রণ পেতে পারে তাই 4 এর চেয়ে বেশি সত্যই কারও "প্রয়োজন হয় না" তবুও আমরা এখানে আছি। এবং এটি সত্যিই 30 টি অক্ষর নয়, এটি 30 টিরও কম অক্ষরের থেকে আমার প্যাসকাল কেস নামকরণ কনভেনশনকে কেস সংবেদনশীলতার অভাবের সাথে ফেলে দেওয়া হয়েছে এবং আন্ডারস্কোর সীমিত নামগুলি প্রতিস্থাপন করেছে। বিভিন্ন উপসর্গ / প্রত্যয় সহ এটি একত্রিত করুন এবং আপনি এমনকি 20 টি অক্ষর ভাগ্যবান। সংক্ষিপ্ত বিবরণ এবং আন্ডারস্কোরের একটি হজপোজে একটি লঙ্ঘনের ত্রুটির সাথে প্রতিস্থাপনকারী শক্তিশালী সূচক নামটি কে প্রতিপন্ন করবে না?
b_levitt

সম্মত হন এটি সমস্যাটির সমাধান করছে না। সাধারণত মানুষের দীর্ঘ কলামের নাম প্রয়োজন হয় না, তবে এমন অনেকগুলি ঘটনা রয়েছে যেখানে অবজেক্টের নাম স্বয়ংক্রিয়ভাবে উত্পন্ন হয়।
বোকা জেসুস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.