Кіріспе
Деректер қорында сақталған сұраныс нәтижесі жиынтығы
Деректер қорында көрініс – сақталған сұраныс нәтижесінің жиынтығы болып табылады, оны тұрақты деректер қоры жиынтығының объектісі сияқты сұрауға болады. Бұл алдын ала белгіленген сұрау командасы деректер сөздігінде сақталады. Реляциялық деректер қорындағы базалық кестелерден айырмашылығы, көрініс физикалық схеманың бөлігі емес: нәтижесінде, ол виртуалды кесте болып табылады. Көріністер бірнеше кестені біріктіріп, оларды бір виртуалды кестеге айналдыра алады. Көріністер жиынтықталған кестелер ретінде де жұмыс істей алады, онда деректер базасы деректерді жиынтықтап (қосынды, орташа есеп және т.б.) есептелген нәтижелерді деректің бөлігі ретінде ұсынады. Көріністер деректердің күрделілігін жасыра алады. Мысалы, көрініс Sales2020 немесе Sales2021 түрінде көрсетілуі мүмкін, бұл нақты негізгі кестенің бөліктерін ажыратуды жеңілдетеді. Көріністерді сақтау үшін аз орын қажет; деректер қорында көріністің анықтамасы ғана сақталады, оның ұсынатын деректердің көшірмесі емес. Деректерді пайдаланушылардың санатына сәйкес, табиғи және интуитивті форматта құрылымдайды. Функция (бағдарламалауда) абстракцияны қамтамасыз ететіндей, деректер қорының көрінісі де солай. Функциялармен салыстыратын болсақ, деректер қорының пайдаланушылары ұялы көріністерді пайдалана алады, яғни бір көрініс басқа көріністерден деректерді жинақтауы мүмкін. Көріністерді пайдаланбаған жағдайда, деректер базасын екінші нормалық формадан жоғары денормализациялау қиынға соғады. Көріністер жоғалтусыз біріктіруді ыдыратуды жеңілдетеді. Базалық кестедегі қатарлардың реті анықталмағандай, көрініс арқылы қол жетімді қатарлар да әдепкі бойынша сұрыпталмайды. Көрініс – реляциялық кесте, ал реляциялық модель кестені қатарлар жиынтығы ретінде анықтайды. Жинақтар анықтама бойынша реттелмегендіктен, көріністің қатарлары да реттелмейді. Сондықтан, көрініс анықтамасындағы ORDER BY операторының мәні жоқ; SQL стандарты (SQL:2003) CREATE VIEW командасының ішкі сұранысында ORDER BY операторын рұқсат етпейді, осылайша CREATE TABLE операторында да рұқсат етілмейді. Дегенмен, сұрыпталған деректерді көрістен, кез келген басқа кесте сияқты, осы көріністегі сұраныс операторының бөлігі ретінде алуға болады. Бірақ, кейбір ДСҚЖ (мысалы, Oracle Database) бұл SQL стандартының шектеуін сақтамайды.
Views can join and simplify multiple tables into a single virtual table. Views can act as aggregated tables, where the database engine aggregates data (sum, average, etc.) and presents the calculated results as part of the data. Views can hide the complexity of data. For example, a view could appear as Sales2020 or Sales2021, transparently partitioning the actual underlying table. Views take very little space to store; the database contains only the definition of a view, not a copy of all the data that it presents. Structures data in a way that classes of users find natural and intuitive. Just as a function (in programming) can provide abstraction, so can a database view. In another parallel with functions, database users can manipulate nested views, thus one view can aggregate data from other views. Without the use of views, the normalization of databases above second normal form would become much more difficult. Views can make it easier to create lossless join decomposition. Just as rows in a base table lack any defined ordering, rows available through a view do not appear with any default sorting. A view is a relational table, and the relational model defines a table as a set of rows. Since sets are not ordered — by definition — neither are the rows of a view. Therefore, an ORDER BY clause in the view definition is meaningless; the SQL standard (SQL:2003) does not allow an ORDER BY clause in the subquery of a CREATE VIEW command, just as it is refused in a CREATE TABLE statement. However, sorted data can be obtained from a view, in the same way as any other table — as part of a query statement on that view. Nevertheless, some DBMS (such as Oracle Database) do not abide by this SQL standard restriction.
Тек оқу үшін және жаңартуға болатын көріністер
Көріністер тек оқуға арналған немесе жаңартылатын ретінде анықталуы мүмкін. Егер деректер базасы жүйесі көрініс схемасынан негізгі кестелердің схемасына кері байланысты анықтай алса, онда көрініс жаңартылатын болады. INSERT, UPDATE және DELETE операцияларын жаңартылатын көріністерде орындауға болады. Тек оқуға арналған көріністер мұндай операцияларды қолдамайды, себебі ДБЖ өзгерістерді негізгі кестелермен сәйкестендіре алмайды. Көріністі жаңарту кілтті сақтау арқылы жүзеге асырылады. Кейбір жүйелер көріністер үшін INSTEAD OF триггерлерін анықтауды қолдайды. Бұл техника көріністе енгізу, жаңарту немесе жою операциясы орнына басқа логиканы орындауға мүмкіндік береді. Осылайша деректер базасы жүйелері тек оқуға арналған көріністерге негізделген деректерді өзгертуді іске асыра алады. Алайда, INSTEAD OF триггері көріністің тек оқуға арналған немесе жаңартылатын қасиетін өзгертпейді.
Материалдық көзқарастар
Әртүрлі деректер қорын басқару жүйелері деректердің тек оқуға арналған жиынтықтарынан, әсіресе материалдық көріністерден кеңейтілді: алдын ала орындалған, виртуалды емес көріністер, олар көбінесе деректер қоймасында қолданылады. Олар деректердің статикалық суретін береді және қашықтан алынған деректерді де қамтуы мүмкін. Материалдық көріністің дәлдігі оны жаңартудың артындағы триггерлік механизмдердің жиілігіне байланысты. Материалдық көріністерді Oracle Database енгізді, ал IBM Db2 осы мақсат үшін «материалдық сұраныс кестелерін» (MQT) ұсынады. Microsoft SQL Server 2000 нұсқасында кестеден бөлек индексті ғана сақтайтын, бірақ толық деректерді емес, индекстелген көріністерді енгізді. PostgreSQL 9.3 нұсқасында материалдық көріністерді жүзеге асырды.