আপনি কেন একটি ডাটাবেসে একটি ভিউ তৈরি করেন?


267

কখন এবং কেন কেউ সিদ্ধান্ত নেয় যে তাদের ডেটাবেজে একটি ভিউ তৈরি করা দরকার? কেন কেবল একটি সাধারণ সঞ্চিত প্রক্রিয়া চালাবেন না বা নির্বাচন করুন?


একটি অনুরূপ প্রশ্নের আমার উত্তর চেক করুন , আশা করি এটি সাহায্য করে!
লৌকান এলকাদি

উত্তর:


464

একটি ভিউ বিভিন্ন সুবিধা দেয়।

1. দর্শন জটিলতা আড়াল করতে পারে

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

২. ভিউগুলি সুরক্ষা ব্যবস্থা হিসাবে ব্যবহার করা যেতে পারে

একটি ভিউ একটি সারণী (বা সারণী) থেকে নির্দিষ্ট কলাম এবং / অথবা সারি নির্বাচন করতে পারে এবং অন্তর্নিহিত সারণীর পরিবর্তে দৃশ্যে সেট করা অনুমতি। এটি কেবলমাত্র এমন ডেটা সার্ফেসিংয়ের অনুমতি দেয় যা ব্যবহারকারীর দেখতে হবে।

৩. ভিউগুলি সমর্থনকারী লিগ্যাসি কোডটিকে সহজতর করতে পারে

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

এগুলি দর্শনগুলি কীভাবে কার্যকর হতে পারে তার কয়েকটি উদাহরণ।


84
আইটেম 3 একটি কারণ অন্য কেউ নির্দিষ্ট হয়েছে বলে মনে হয় এখনো
MedicineMan

2
আমি মনে করি পয়েন্ট 3 অন্য যে কোনও কিছুর চেয়ে স্টপ ফাঁক বেশি। অবশেষে যখন আপনি লিগ্যাসি কোড আপডেট করার জন্য গোল হয়ে উঠবেন, আপনাকে কেবলমাত্র ভিউটির পিছনে কোডটিই নয়, বরং সমস্ত কোড যা দর্শনটির উপরে তৈরি করা হয়েছে তাও পরিবর্তন করতে হবে। আমার 2cents
9

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

1
@ জন এই ব্যয়িত প্রযুক্তি debtণ শীঘ্রই বা পরে পরিশোধ করতে হবে? 10 বছরে এটি 10 ​​বছর আগে যে ইঞ্জিনিয়ার লিখেছিল সেটির পক্ষে এটি বিবেচনা না করে তবে এটি কোম্পানির পক্ষে গুরুত্বপূর্ণ।
9

আপনার মূল ডিবি এবং এর উপর নির্ভর করে সমস্ত কিছু পরিবর্তন করা পছন্দীয় পছন্দ কারণ আপনার '10 বছরের মধ্যে এটি প্রয়োজন হতে পারে'। কারিগরি debtণটি যে কোনও মূল্যে এড়ানো সম্ভব নয়, কেবলমাত্র যদি পরে এটির ফিক্সিংয়ের প্রত্যাশিত ব্যয় এটি এখন নির্ধারণের নির্দিষ্ট ব্যয়ের চেয়ে বেশি হয়।
মিঃ বয়

88

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


মজাদার. সুরক্ষা একটি ভাল উত্তর। আপনার কোন 'অন্যান্য জিনিস' মনে আছে?
MedicineMan

13
আমি ধরে নিয়েছি যে এই প্রশ্নের অন্যান্য উত্তরগুলি "অন্যান্য জিনিস" বর্ণনা করবে। :-)
গ্রায়েম Perrow

Select name, address, zipcode from customerপরিবর্তে উদ্দেশ্য পরিবেশন করা হবে না creating a view?
পিপিবি

@ প্রণববিলুরকার হ্যাঁ, আপনি যদি ব্যবহারকারীদের দ্বারা চালিত প্রশ্নগুলি সম্পূর্ণরূপে নিয়ন্ত্রণ করেন। যদি ব্যবহারকারীদের নিজস্ব প্রশ্নগুলি চালানোর দক্ষতা থাকে (কিছু ইন্টারেক্টিভ এসকিউএল প্রোগ্রামের মাধ্যমে বা তাদের নিজস্ব স্ক্রিপ্টগুলি লেখার জন্য), তারা চালাতে পারে select * from customerযা তাদের সবকিছুতে অ্যাক্সেস দেয়। আপনি যদি তাদের দেখার জন্য টেবিলটি না দিয়ে অ্যাক্সেস দেন তবে তারা সেই দর্শনতে নেই এমন ক্ষেত্রগুলি অ্যাক্সেস করতে পারে না
পেরো

38

একটি ভিউ হল একটি ক্যোয়ারীর একটি এনপ্যাপুলেশন। দর্শনগুলিতে রূপান্তরিত হওয়া প্রশ্নগুলি জটিল হতে থাকে এবং পুনরায় ব্যবহারের দর্শন হিসাবে এগুলি সংরক্ষণ করা সুবিধাজনক হতে পারে।


সুতরাং আপনার যখন জটিল প্রশ্ন রয়েছে তখন আপনি একটি দৃশ্য তৈরি করতে চান? কোয়েরি কতটা জটিল, প্রান্তিক কী? এটিকে দেখার থেকে আপনি কী অর্জন করবেন?
MedicineMan

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

1
আপনি কি একটি নির্বাচিত একটি সঞ্চিত পদ্ধতিতে একই কাজ করতে পারবেন না? জটিল জিজ্ঞাসা যুক্তি সঞ্চয় করার উপায় হিসাবে আমি কী ভুলভাবে সংরক্ষণ করা পদ্ধতিগুলি ভেবে দেখেছি? জটিল প্রশ্নগুলি কি সঞ্চিত পদ্ধতির পরিবর্তে দর্শনে করা উচিত? এখানে একটি সঞ্চিত পদ্ধতির সুবিধা কী?
MedicineMan

2
@ মেডিসিনমন - একটি সঞ্চিত পদ্ধতি ফলাফল-সেটটি দেয় যখন একটি ভিউ ভার্চুয়াল টেবিলকে উপস্থাপন করে যা আপনাকে অন্যান্য প্রশ্নের মধ্যে একটি সারণী হিসাবে ব্যবহার করতে দেয়।
অ্যান্ড্রু হরে

1
আমি মনে করি ফলাফল সেট বনাম এই পয়েন্টটি ভার্চুয়াল টেবিলটি একটি মূল পয়েন্ট বলে মনে হচ্ছে যা আমি বুঝতে পারি নি।
MedicineMan

28

আমি সাধারণত প্রতিবেদনের প্রয়োজনে প্রায়শই ব্যবহৃত হওয়া ডি-স্বাভাবিককরণ এবং / অথবা সামগ্রিক ডেটা দেখতে ভিউ তৈরি করি।

সম্পাদনা

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

  1. প্রশ্ন লেখার ক্ষেত্রে বাড়াবাড়ি হ্রাস করা
  2. সত্তা সম্পর্কিত সম্পর্কিত একটি মান প্রতিষ্ঠা
  3. জটিল গণনা এবং যোগদানের জন্য পারফরম্যান্স মূল্যায়ন ও সর্বাধিকীকরণের সুযোগ প্রদান (যেমন এমএসএসকিউএলে স্কিমাবাউন্ড ভিউগুলিকে সূচীকরণ)
  4. দলের সদস্য এবং অ বিকাশকারীদের ডেটা আরও অ্যাক্সেসযোগ্য এবং স্বজ্ঞাত তৈরি করা।

1
আপনি এই সম্পর্কে বিস্তারিত বলতে পারেন? আপনার উত্তর বেশ একটু ভোট দিয়েছেন হচ্ছে, কিন্তু আমি মান হচ্ছিনা যে বাকিদের বলে মনে হয়
MedicineMan

11

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

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

স্ফটিক রিপোর্টগুলি সংরক্ষিত প্রকোপগুলিতে ভিউগুলি ব্যবহার করতে পছন্দ করে বলে মনে হয়, তাই যে সমস্ত লোকেরা প্রতিবেদন লেখার কাজ করে তারা প্রচুর মতামত ব্যবহার করে

ডাটাবেসগুলি রিফ্যাক্টর করার সময়ও ভিউগুলি খুব কার্যকর। আপনি প্রায়শই পরিবর্তনটি আড়াল করতে পারেন যাতে কোনও ভিউ তৈরি করে পুরানো কোডটি এটি দেখতে না পায়। রিফ্যাক্টর করার জন্য এটি একটি শক্তিশালী উপায় এটি কীভাবে কাজ করে তা দেখতে রিফ্যাক্টরিং ডেটাবেজে পড়ুন।


7

সঞ্চিত পদ্ধতিতে দেখার একটি বড় সুবিধা হ'ল আপনি যেমন কোনও টেবিল ব্যবহার করেন ঠিক তেমন একটি ভিউও ব্যবহার করতে পারেন। যথা, কোনও ভিউয়ের জন্য সরাসরি FROMকোনও প্রশ্নের উত্তর দেওয়া যেতে পারে । যেমন SELECT * FROM dbo.name_of_view,।

অন্য প্রায় প্রতিটি উপায়ে, সঞ্চিত পদ্ধতিগুলি আরও শক্তিশালী। আপনি পরামিতি মধ্যে পাস করতে পারেন সহ out, পরামিতি যে আপনার কার্যকরভাবে একবারে অনেক মান আসতে করার অনুমতি দেয় আপনি কি করতে পারেন SELECT, INSERT, UPDATE, এবং DELETEঅপারেশন ইত্যাদি ইত্যাদি

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

এই বিষয়ের উপর একটি দুর্দান্ত দরকারী নিবন্ধ:

http://databases.aspfaq.com/database/should-i-use-a-view-a-stored-procedure-or-a-user-defined-function.html

সম্পাদনা: যাইহোক, এই ধরণের প্রশ্নটি উত্থাপন করে, একটি সারণী-মূল্যবান ফাংশনটির চেয়ে দর্শনটির কী সুবিধা রয়েছে? আমার এর পক্ষে সত্যিকারের উত্তম উত্তর নেই, তবে আমি লক্ষ করব যে ভিউ তৈরির জন্য টি-এসকিউএল সিনট্যাক্সটি টেবিল-মূল্যবান ফাংশনের চেয়ে সহজ, এবং আপনার ডাটাবেসের ব্যবহারকারীরা দৃশ্যের সাথে আরও পরিচিত হতে পারেন।


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

দৃশ্যের কাঠামোর উপর নির্ভর করে কিছু ভিউ সূচিযুক্ত করা যেতে পারে। এটি টেবিলের মূল্যবান ফাংশনগুলির তুলনায় একটি বড় উন্নতি।
এইচএলজিইএম

6

এটি আপনার ওআরএম এবং আপনার টেবিলগুলির মধ্যে ভাল "মিডল ম্যান" হিসাবে কাজ করতে পারে।

উদাহরণ:

আমাদের একটি ব্যক্তির টেবিল ছিল যা আমাদের এটির কাঠামোটি পরিবর্তন করার দরকার ছিল যাতে কলাম কলাম কলামটি অন্য টেবিলে স্থানান্তরিত হতে চলেছে এবং এর সাথে অনেকের মধ্যে একটির সম্পর্ক রয়েছে।

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

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


1
মজাদার. আপনার ক্ষেত্রে এটি প্রায় টেবিলগুলির ইন্টারফেসের মতো।
MedicineMan

5

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

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

আপনি ইনলাইন ব্যবহারকারী-সংজ্ঞায়িত ফাংশনও তৈরি করতে পারেন যা প্যারামিটারাইজড ভিউগুলি হিসাবে যুক্তিযুক্তভাবে পরিচালনা করে বা WHERE- ধারা অনুসন্ধানের শর্তাদির প্যারামিটার রয়েছে views আরও তথ্যের জন্য, ইনলাইন ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি দেখুন।

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

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

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

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

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

পার্টিশনযুক্ত ভিউগুলি এই শর্তগুলির মধ্যে দুটি যদি পূরণ হয় তবে আপডেট করা যায়: INSERT, আপডেট এবং বিবৃতি মোছার পক্ষে যুক্তির সাথে একটি ট্রিগারের সংজ্ঞা সংজ্ঞায়িত করা হয়।

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

https://technet.microsoft.com/en-us/library/aa214282(v=sql.80).aspx#sql:join


5

এখানে দুটি সাধারণ কারণ রয়েছে:

আপনি এটি সুরক্ষার জন্য ব্যবহার করতে পারেন। প্রধান টেবিলটিতে কোনও অনুমতি মঞ্জুর করবেন না এবং এমন দৃশ্য তৈরি করুন যা কলাম বা সারি অ্যাক্সেসকে সীমাবদ্ধ করে এবং ব্যবহারকারীদের দেখুন দেখার অনুমতি দেয়।

আপনি সুবিধার জন্য এটি ব্যবহার করতে পারেন। ভিউতে আপনি সমস্ত সময় একসাথে ব্যবহার করেন এমন কয়েকটি সারণী একসাথে যোগদান করুন। এটি ক্যোয়ারিকে সামঞ্জস্যপূর্ণ এবং সহজ করে তুলতে পারে।


3

এটি করার একাধিক কারণ রয়েছে। কখনও কখনও সাধারণ যোগদানের ক্যোয়ারিকে সহজ করে তোলে কারণ সমস্ত যোগদানের পরিবর্তে কোনও টেবিলের নাম জিজ্ঞাসা করতে পারে।

অন্য কারণ হ'ল বিভিন্ন ব্যবহারকারীর মধ্যে ডেটা সীমাবদ্ধ করা। উদাহরণস্বরূপ:

সারণী 1: কলম্বস - USER_ID; USERNAME; এসএসএন

অ্যাডমিন ব্যবহারকারীদের প্রকৃত টেবিলটিতে ছদ্মবেশ থাকতে পারে, তবে যে ব্যবহারকারীরা আপনার এসএসএন বলতে অ্যাক্সেস করতে চান না, আপনি সে হিসাবে একটি ভিউ তৈরি করেন

নির্বাচন করুন ব্যবহারকারী_আইডি, ব্যবহারকারীর নাম থেকে সারণি 1;

তারপরে তাদের টেবিলটি নয় বরং ভিউ অ্যাক্সেস করার জন্য প্রাইভেস দিন।


2

উত্তরাধিকারের ডেটাবেসগুলিতে রিপোর্ট করার সময় দর্শনগুলি গডসেন্ড হতে পারে। বিশেষত, আপনি ক্রিপ্টিক 5 টি বর্ণের নামের পরিবর্তে সংবেদনশীল টেবিলের নামগুলি (যেখানে এর মধ্যে 2 টি সাধারণ উপসাগর হয়!) বা সংক্ষেপে পূর্ণ কলামের নামগুলি ব্যবহার করতে পারেন যা আমি নিশ্চিত যে সে সময়টি বোধগম্য হয়েছিল।


2

সাধারণত আমি জীবনকে সহজ করার জন্য ভিউগুলির সাথে যাই, একাধিক টেবিলের উপরে সঞ্চিত এমন কোনও সত্তার কাছ থেকে বর্ধিত বিবরণ পাই (পাঠযোগ্যতার বর্ধনের জন্য কোডে প্রচুর যোগ দেয়) এবং কখনও কখনও একাধিক ডাটাবেসে ডেটা ভাগ করে নিতে বা এমনকি সন্নিবেশগুলি পড়া সহজ করে তোলে।


2

কোনও ব্যবহারকারীর টেবিলে আপডেট হওয়া কলামগুলিকে সীমাবদ্ধ করতে অনুমতি সহ একটি দৃশ্য কীভাবে ব্যবহার করবেন তা এখানে রয়েছে is

/* This creates the view, limiting user to only 2 columns from MyTestTable */
CREATE VIEW dbo.myTESTview 
WITH SCHEMABINDING AS
SELECT ID, Quantity FROM dbo.MyTestTable;

/* This uses the view to execute an update on the table MyTestTable */
UPDATE dbo.myTESTview
SET Quantity = 7
WHERE ID = 1

1

আমি যখন কোনও টেবিলের স্ন্যাপশট দেখতে চাই এবং / অথবা দেখুন (কেবল পঠনযোগ্য উপায়ে)


1
'টেবিলের স্ন্যাপশট' বলতে কী বোঝ? আপনি কখন বা কেন এটি করতে চান?
MedicineMan

অনেক পরিস্থিতিতে আছে; বলুন যে আপনি কোনও টেবিলে কোনও প্রভাব ছাড়াই এবং আন্ডারলাইনিং ছাড়াই একটি জটিল ক্যোয়ারী / স্টোর-প্রিজ্যুরিয় চালাতে চান। আপনি একটি দৃশ্য তৈরি করুন (কেবলমাত্র পঠনযোগ্য উপস্থাপনা)
ਵਾਹসমজজ

সুতরাং যদি আপনি একটি জটিল ক্যোয়ারী স্টোর প্রক্রিয়া চালাতে চান, আপনি কেবল পঠন ফ্যাশনে ভিউ অ্যাক্সেস করতে পারবেন না? আপনি এখানে যা বলছেন তা 'পাওয়ার' জন্য আমার কাছে ডেটাবেস অভিজ্ঞতা নেই। আপনি কি বিস্তারিত বা বিস্তারিত উদাহরণ সরবরাহ করতে পারেন?
MedicineMan

1

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

আমি দীর্ঘস্থায়ী প্রশ্নের জন্য বাস্তবায়িত দৃষ্টিভঙ্গি ব্যবহার করেছি যা সত্য সময়ে সঠিক রাখতে হবে না।


আপনি বিরোধিতা হিসাবে কোয়েরি চালাচ্ছেন যখন? কেন? এই বিন্দুটি বেশ অর্থে দেখা যায় না
MedicineMan

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

1

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


1

এটি ঠিক আপনার প্রশ্নের উত্তর দিতে না কিন্তু আমার মনে হয়েছে এটি হবে কহতব্য রূপায়িত দেখেছে । আমার অভিজ্ঞতা বেশিরভাগ ওরাকল নিয়ে তবে ধারণা করা যায় এসকিউএল-সার্ভার মোটামুটি একই রকম।

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


1

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


আপনি ছোট পরিষেবার উদাহরণ দিতে পারেন
MedicineMan

1

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


1

আমার প্রোডাকশন ডাটাবেসে আমার কেবল 10 বা তত বেশি মতামত রয়েছে। আমি সমস্ত সময় কলামগুলির জন্য ব্যবহার করি। আমি যে সেটটি ব্যবহার করি তা come টি টেবিল থেকে আসে, কিছুটি বাইরের সাথে যোগ দেয় এবং পুনরায় লেখার চেয়ে ক্রমাগত আমাকে কেবলমাত্র সেই ভিউটিকে একটি নির্বাচনের কল করতে হয় এবং একটি বা 2 যোগ দেয়। আমার কাছে এটি কেবল সময় সাশ্রয়কারী।


আমাকে ক্ষমা করুন যদি এটি প্রশ্নের আওতার বাইরে, তবে বেশিরভাগ লোক এটি উল্লেখ করেছেন - এটি করার জন্য আপনি কোনও ধরনের পারফরম্যান্স জরিমানা কাটাচ্ছেন না?
MedicineMan

একেবারেই না. এসকিউএল সার্ভার অপ্টিমাইজার এসকিউএল ভিউয়ের সমতুল্যে যোগ দেয় হিসাবে * ভিউ থেকে নির্বাচন করার জন্য ঠিক একই পরিকল্পনাটি দেখায়
ব্রায়ান স্পেন্সার

1

আমি এমন একটি এক্সএক্সএক্সএক্স তৈরি করছি যা একটি প্রধান টেবিলের (যেমন পণ্য টেবিল) এবং রেফারেন্স সারণীর (যেমন পণ্য টাইপ বা প্রোডাক্টডেসক্রিপশনবাইল্যাঙ্গোয়েজের) মধ্যে সমস্ত সম্পর্ককে ম্যাপ করে। এটি এমন একটি দৃষ্টিভঙ্গি তৈরি করবে যা আমাকে একটি পণ্য এবং তার বিবরণটির বিদেশী কী থেকে তার বর্ণনায় অনুবাদিত সমস্ত বিবরণ পুনরুদ্ধার করতে অনুমতি দেবে। তারপরে আমি গ্রিড, কম্বো বাক্স, ইত্যাদি সহজেই তৈরি করতে অবজেক্ট তৈরি করতে একটি ORM ব্যবহার করতে পারি


0

এটি আপনার ডাটাবেস স্কিমা রিফ্যাক্টরিং হিসাবে ভাবেন।


0

আমি প্রথমে মনে করি .কোয়ারির জটিলতা লুকানোর জন্য। এটি দেখার জন্য খুব উপযুক্ত Hযখন আমরা ডাটাবেস টেবিলগুলিকে সাধারণ করি। এখন টেবিলের সংখ্যা বৃদ্ধি পেলে ডেটা আনার পক্ষে এখন খুব কঠিন handle হ্যান্ডেল করার সর্বোত্তম উপায় হল দৃষ্টিভঙ্গিগুলি অনুসরণ করুন fআমি যদি ভুল হয় তবে আমাকে সঠিক করে নেওয়া হয়।


আপনি যদি এটি গুগল করেন তবে আপনি এই প্রশ্নের জন্য খুব স্পষ্ট তথ্য পেয়েছেন।
চেল্লা

0

আমরা একটি সারণীতে সমস্ত সারি / কলাম অ্যাক্সেস থেকে সীমাবদ্ধ বা ছাঁটাইয়ের জন্য ভিউ তৈরি করি I যদি মালিক চান যে কেবল নির্দিষ্ট বা সীমাবদ্ধ সারি / কলামটি ভাগ করে নেওয়া দরকার, তবে তিনি সেই কলামটি দিয়ে একটি ভিউ তৈরি করবেন।


আপনার কেবল ভিউটি ব্যবহার / করা উচিত কেন এটিই একমাত্র কারণ।
আলেকজান্ডার

0

সুরক্ষার জন্য: প্রতিটি ব্যবহারকারীর কেবলমাত্র একটি ছোট্ট দর্শনগুলির মাধ্যমে ডাটাবেস অ্যাক্সেস করার অনুমতি দেয় যা ব্যবহারকারী বা ব্যবহারকারীদের গোষ্ঠীটি দেখার জন্য অনুমোদিত, নির্দিষ্ট ডেটা ব্যবহার করে অন্যান্য ডেটাতে ব্যবহারকারীর অ্যাক্সেসকে সীমাবদ্ধ করে।

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

ধারাবাহিক ডাটাবেস কাঠামো তৈরির জন্য : ভিউগুলি ডাটাবেস কাঠামোর একটি সামঞ্জস্যপূর্ণ, অপরিবর্তিত চিত্র উপস্থাপন করে, এমনকি অন্তর্নিহিত উত্সের টেবিলগুলি পরিবর্তন করা হলেও।

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