Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Язык SQL (Structured Query Language). Интерактивный и встроенный SQL. Составные части SQL. Типы данных SQL. Основные типы команд SQLСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Язык SQL (Structured Query Language). Интерактивный и встроенный SQL. Составные части SQL. Типы данных SQL. Основные типы команд SQL SQL – это язык структурированных запросов (Structured Query Language) к реляционным БД. Используя SQL-запросы, можно выбирать из таблиц БД только необходимые записи. При этом мы можем получить доступ не просто к одной таблице, а к сложной выборке из связанных между собой таблиц или наборов данных. SQL как стандартный способ управления БД реализован во многих СУБД, включая Microsoft Access и SQL Server. Существуют две формы языка SQL: интерактивный SQL и встроенный SQL. Интерактивный SQL используется для задания SQL-запросов пользователем и получения результата в интерактивном режиме. Встроенный SQL состоит из команд SQL, встроенных внутрь программ, обычно написанных на каком-то другом языке (Паскаль, С, C++и др.). Составные части SQL. И интерактивный, и встроенный SQL подразделяются на следующие составные части: DDL, или язык определения данных; DML, или язык манипулирования данными; DQL, или язык запросов; DCL, или язык управления данными; Команды администрирования данных; Команды управления транзакциями. Типыданных SQL CHARACTER (CHAR) представляет собой символьные строки фиксированной длины. INTEGER — представление целых чисел в диапазоне от –231 до +231. SMALLINT — используется для представления целых чисел в диапазоне от –215 до +215. DECIMAL (точность [, масштаб ])— десятичное число с фиксированной точкой, точность определяет количество значащих цифр в числе. Масштаб указывает максимальное число цифр справа от точки. FLOAT [(точность)] — число с плавающей точкой и указанной миним. точностью. REAL — число такое же, как при типе FLOAT, за исключением определения точности по умолчанию (в зависимости от конкретной реализации SQL). DOUBLE PRECISION — число аналогично REAL, но точность в два раза выше точности REAL. Дата и время -Тип данных, предназначенный для представления даты и времени, также является нестандартным, хотя и чрезвычайно полезным. Неопределенные или пропущенные данные (NULL) Для обозначения отсутствующих, пропущенных или неизвестных значений атрибута в SQL используется ключевое слово NULL. Типы команд SQL 1. Команды языка определения данных (data definition language — DDL) позволяют создавать новые таблицы в БД, добавлять индексы и т.д.: CREATE TABLE - создать таблицу, ALTER TABLE - модифицировать таблицу, DROP TABLE - удалить таблицу, CREATE INDEX - создать индекс, ALTER INDEX - модифицировать индекс, DROP INDEX - удалить индекс. 2. Команды языка обработки данных (data manipulation language — DML) используются для добавления, корректировки и удаления строк в таблицах и включают команды: INSERT - вставить данные в таблицу, UPDATE - обновить данные, DELETE - удалить данные. 3. Команда языка запросов данных (dataquerylanguage — DQL) (единственная команда) используется для получения данных из таблиц и определения формы представления этих данных: SELECT - выполнить запрос из таблиц базы. 4. Команды языка управления данными (data control language— DCL) определяют доступ отдельных пользователей и групп пользователей к объектам БД посредством полномочий, предоставляемых и отменяемых командами: GRANT - предоставить привилегии, REVOKE - отменить привилегии. 5. Команды языка обработки транзакций (transaction processing language — TPL) обеспечивают обновление всех строк, используемых в операторе DML, и включают следующие команды: BEGIN TRANSACTION - начать транзакцию, COMIT TRANSACTION - завершить транзакцию, SAVE TRANSACTION - создать точку сохранения внутри транзакции. 6. Команды языка управления курсором (cursor control language — CCL) выполняют операции с отдельными строками одной или нескольких таблиц и включают команды: DECLARE CURSOR, FETCH INTO и UPDATE WHERE CURRENT. Строковые функции • LENGTH — определение длины строки LENGTH (<строка>) · LFAD(<строка>,<длина>[,<подстрока>]) — дополнение строки слева. · RPAD(<строка>,<длина>[,<подстрока>]) — дополнение строки справа. · LTRIM(<строка>[,<подстрока>]) — удаление левых граничных символов. · RTRIM(<строка>[,<подстрока>]) — удаление правых граничных символов · SUBSTR (<строка>,<нзчало>[,<количество>)) — выделение подстроки. · INSTR (<строка>,<подстрока>[,<начало поиска> [,<номер вхождения>]]) — поиск подстроки. Функции работы с числами · ABS — абсолютное значение. · FLOOR — урезает значение числа с плавающей точкой до наибольшего целого · CEIL — самое малое целое, равное или большее заданного числа. · Гиперболические функции — COSH, SINH, TANH · Тригонометрические функции — COS, SIN, TAN и т.д. · Функция округления— ROUND · Функция усечения— TRUNC · Функция возведения в степень — POWER Функции преобразования из одного типа данных в другой: · TO_CHAR, TO_NUMBER, TO_DATE, CAST. SELECT COUNT FROM EXAM_MARKS; Предложение GROUP BY (группировать по) позволяет группировать записи в подмножества, определяемые значениями какого-либо поля, и применять агрегирующие функции уже не ко всем записям таблицы, а раздельно к каждой сформированной группе Предположим, требуется найти максимальное значение оценки, полученной каждым студентом, тогда запрос имеет вид: SELECT STUDENT_ID, MAX (MARK) FROM EXAM_MARKS GROUP BY STUDENT_ID; Однозвенная архитектура Однозвенная (one-tier, single-tier) архитектура – это система, в которой все службы БД, приложения и представления (пользовательский интерфейс) размещены на одной системе. Системы такого типа не производят обработку вне тех компьютеров, на которых они исполняются. Примером однозвенной архитектуры может служить БД Microsoft Аccess с локальными службами представления. Пример однозвенной архитектуры с SQL Server найти гораздо труднее. 20. Общие понятия и определения целостности. Принципы поддержки целостности в СУБД. Преимущества и недостатки средств обеспечения целостности данных. Примеры использования объекта «ограничения целостности» в базе данных. Одним из основополагающих понятий в технологии БД является понятие целостности. В реляционной модели под целостностью понимается соответствие информационной модели предметной области, хранимой в БД, объектам реального мира и их взаимосвязям в каждый момент времени. Поддержка целостности в реляционной модели данных в ее классическом понимании включает в себя 3 аспекта: · поддержка структурной целостности · поддержка языковой целостности · поддержка ссылочной целостности (Declarative Referential Integrity, DRI) Поддержка структурной целостности: трактуется как то, что реляционная СУБД должна допускать работу только с однородными структурами данных типа "реляционное отношение". При этом понятие "реляционного отношения" должно удовлетворять всем ограничениям, накладываемым на него в классической теории реляционной БД. Поддержка языковой целостности: Состоит в том, что реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL. Не должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту. Именно поэтому доступ к информации, хранимой в БД, и любые изменения этой информации могут быть выполнены только с использованием операторов языка SQL. Поддержка ссылочной целостности: Означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений: · кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними. · кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношения ставится неопределенное Null значение. Ссылочная целостность обеспечивает поддержку непротиворечивого состояния БД в процессе модификации данных при выполнении операций добавления или удаления. Кроме указанных ограничений целостности, которые в общем виде не определяют семантику БД, также существует понятие семантической поддержки целостности. Преимущества и недостатки: Триггеры должны использоваться только в том случае, если ограничения не позволяют достичь намеченной цели. Таким образом, для обеспечения целостности данных следует преимущественно использовать ограничения. Эти конструкции являются быстродействующими, а задача их создания не так уж сложна. Недостаток ограничений состоит в том, что их функциональные возможности строго лимитированы (в частности, любые ограничения, кроме ограничений внешнего ключа, не позволяют ссылаться на другие таблицы). А если в БД широко применяются однотипные условия ограничений, то приходится заниматься однообразной и скучной работой- переопределять одни и те же ограничения снова и снова. Примеры правил: вес детали должен быть положительным; количество знаков в телефонном номере не должно превышать 25; возраст родителей не может быть меньше возраста их биологического ребёнка и т.д. Главное средство обеспечение доменной целостности в SQL Server - это ограничение CHECK. Оно может быть определено при создании таблицы или добавлено позднее при помощи команды ALTER TABLE, например: ALTER TABLE dbo.Employees ADDCONSTRAINT CK_birthdate CHECK (BirthDate> '01-01-1900' AND BirthDate<getdate()) Понятие подзапроса. Примеры формирования связанных и вложенных подзапросов. Подзапрос – это инструмент создания временной таблицы, содержимое которой извлекается и обрабатывается внешним оператором. Текст подзапроса должен быть заключен в скобки. Запросы, отделенные круглыми скобками и входящие в состав конструкций HAVING, WHERE, FROM, SELECT и WITH внешнего запроса SELECT или каких-либо других перечисленных запросов, заключающих в себе эти конструкции, называются вложенными запросами (подзапросами). Вложенные подзапросы могут быть простыми и связанными. Если результат вложенного запроса не зависит от результата внешнего, то такой вложенный запрос называется простым. Вложенные подзапросы: Предположим, та фамилия студента («Петров»), но неизвестно значение поля STUDENT_ID для него. Чтобы извлечь данные обо всех оценках этого студента, можно записать следующий запрос: SELECT * FROM EXAM_MARKS WHERE STUDENT_ID = (SELECT STUDENT_ID FROM STUDENTSURNAME='Петров' ); Как работает запрос SQL со связанным подзапросом? 1) Выбирается строка из таблицы, имя которой указано во внешнем запросе. 2) Выполняется подзапрос и полученное значение применяется для анализа этой строки в условии предложения WHERE внешнего запроса. 3) По результату оценки этого условия принимается решение о включении или не включении строки в состав выходных данных. 4) Процедура повторяется для следующей строки таблицы внешнего запроса. В некоторых случаях для гарантии получения единственного значения в результате выполнения подзапроса используется DISTINCT. Широко применяется в подзапросах оператор IN, задающий список значений, с которыми сравниваются другие значения для определения истинности задаваемого этим оператором предиката. Подзапросы можно применять внутри предложения HAVING. Пусть требуется определить количество предметов обучения с оценкой, превышающей среднее значение оценки студента с идентификатором 301: SELECT COUNT (DISTINCT SUBJ_ID ), MARK FROM EXAM_MARKS GROUP BY MARK HAVING MARK > (SELECT AVG( MARK ) FROM EXAM_MARKS WHERE STUDENT_ID = 301 ); Связанныеподзапросы: Если результат вложенного запроса зависит от результата внешнего, то такой вложенный запрос называется связанным вложенным запросом. Иными словами, вложенный запрос является связанным, если в конструкциях WHERE, HAVING указан столбе, фигурирующий во внешнем запросе. Такая связь имеет название внешней ссылки. В связанных вложенных запросах названия столбцов записываются полностью. Если во внешней конструкции запроса и вложенной используется общая таблица, то столбцам присваиваются псевдонимы. При использовании подзапросов во внутреннем запросе можно ссылаться на таблицу, имя которой указано в предложении FROM внешнего запроса. В этом случае такой связанный подзапрос выполняется по одному разу для каждой строки таблицы основного запроса. Пример: выбрать сведения обо всех предметах обучения, по которым проводился экзамен 20 января 2006 г. SELECT * FROM SUBJECT SU WHERE '20/01/2006' IN (SELECT EXAM_DATE FROM EXAM_MARKS EX WHERE SU.SUBJ_ID=EX.SUBJ_ID ); Пример создания триггера В стандарте SQL1 ни хранимые процедуры, ни триггеры были не определены. В добавлении к стандарту SQL2, выпущенному в 1996 году, те и другие объекты были стандартизированы и определены. Для создания триггеров используется специальная команда: CREATE TRIGGER <имя_триггера> ON <имя_таблицы> FOR {[INSERT][, UPDATE] [, DELETE] } [WITH ENCRIPTING] AS SQL-операторы (Тело триггера) Имя триггера является идентификатором во встроенном языке программирования СУБД и должно удовлетворять соответствующим требованиям. В параметре FOR задается одна или несколько операций модификации, которые запускают данный триггер. Параметр WITH ENCRIPTING имеет тот же смысл, что и для хранимых процедур, он скрывает исходный текст тела триггера. Существует несколько правил, которые ограничивают набор операторов, которые могут быть использованы в теле триггера.
Так, в большинстве СУБД действуют следующие ограничения: · Нельзя использовать в теле триггера операции создания объектов БД (новой БД, новой таблицы, нового индекса, новой хранимой процедуры, нового триггера, новых индексов, новых представлений). · Нельзя использовать в триггере команду удаления объектов DROP для всех типов базовых объектов БД. · Нельзя использовать в теле триггера команды изменения базовых объектов ALTER TABLE, ALTER DATABASE. · Нельзя изменять права доступа к объектам БД, то есть выполнять команду GRAND или REVOKE. · Нельзя создать триггер для представления VIEW. · В отличие от хранимых процедур, триггер не может возвращать никаких значений, он запускается автоматически сервером и не может связаться самостоятельно ни с одним клиентом. Абстрактные типы данных Одной из наиболее известных СУБД третьего поколения является система Postgres, а создатель этой системы М.Стоунбрекер, по всей видимости, является вдохновителем всего направления. В Postgres реализованы многие интересные средства: поддерживается темпоральная модель хранения и доступа к данным (см. ниже) и в связи с этим абсолютно пересмотрен механизм журнализации изменений, откатов транзакций и восстановления БД после сбоев; обеспечивается мощный механизм ограничений целостности; поддерживаются ненормализованные отношения (работа в этом направлении началась еще в среде Ingres), хотя и довольно странным способом: в поле отношения может храниться динамически выполняемый запрос к БД OLTP и OLAP-системы Сильно нормализованные модели данных хорошо подходят для так называемых OLTP-приложений (On-LineTransactionProcessing (OLTP)- оперативная обработка транзакций). Типичными примерами OLTP-приложений являются системы складского учета, системы заказов билетов, банковские системы, выполняющие операции по переводу денег, и т.п. Другим типом приложений являются так называемые OLAP-приложения (On-Line Analitical Processing (OLAP) - оперативная аналитическая обработка данных). Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений (DecisionSupportSystem - DSS), хранилищ данных (DataWarehouse), систем интеллектуального анализа данных (DataMining). Такие системы предназначены для нахождения зависимостей между данными (например, можно попытаться определить, как связан объем продаж товаров с характеристиками потенциальных покупателей), для проведения анализа "что если…". OLAP-приложения оперируют с большими массивами данных, уже накопленными в OLTP-приложениях, взятыми их электронных таблиц или из других источников данных. Такие системы характеризуются следующими признаками: · Добавление в систему новых данных происходит относительно редко крупными блоками. · Данные, добавленные в систему, обычно никогда не удаляются. · Перед загрузкой данные проходят различные процедуры "очистки", связанные с тем, что в одну систему могут поступать данные из многих источников, имеющих различные форматы представления для одних и тех же понятий, данные могут быть некорректны, ошибочны. · Запросы к системе являются нерегламентированными и, как правило, достаточно сложными. · Скорость выполнения запросов важна, но не критична.
Модель данных состоит из двух типов таблиц: одной таблицы фактов (facttable) — центр «звезды» — и нескольких таблиц измерений (dimensiontable) по числу измерений в модели данных — лучи «звезды». Объектно-реляционные СУБД. Подходы к построению объектно-реляционных СУБД (ОРСУБД).
В ОРСУБД широко используются такие объектно-ориентированные компоненты, как: · расширяемая пользователем система типов, · инкапсуляция, · наследование, · полиморфизм, · динамическое связывание методов, · использование составных, · поддержка идентичности объектов. Архитектура СУОБД
ODMG-93 определяет СУОБД как СУБД, интегрирующую свойства БД и объектно-ориентированных языков программирования. В качестве основы объектной модели ODMG-93 используется объектная модель OMG. Модель данных. Базовыми примитивами являются объекты и литералы. Каждый объект имеет уникальный идентификатор, литерал не имеет идентификатора. Объект, на который можно установить ссылку, называется экземпляром; он хранит определенный набор данных Состояние объекта определяется набором значений, реализуемых множеством свойств. Этими свойствами могут быть атрибуты объекта или связи между объектом и одним или несколькими другими объектами. Поведение объекта определяется набором операций, которые могут быть выполнены над объектом или самим объектом. Операции могут иметь список входных и выходных параметров строго определенного типа. Каждая операция может также возвращать типизированный результат. БД хранит объекты, позволяя совместно использовать их различным пользователям и приложениям. БД основана на схеме данных, определяемой языком определения данных, и содержит экземпляры типов, определенных схемой. Каждый тип имеет внешнюю спецификацию и одну или несколько реализаций. Спецификация определяет внешние характеристики типа: пользователю для работы с объектом предоставляется набор операций и набор атрибутов объекта, при помощи которых можно работать с реальными экземплярами. Реализация определяет внутреннее содержание объектов, например операции. Тип также является объектом. Поддерживается иерархия супертипов и подтипов, реализуя стандартный механизм ООП — наследование. Новые типы данных Особенность ООСУБД состоит в том, что создание нового типа не требует модификации ядра базы и основано на принципах ООП. В ООСУБД для объектов, которые предполагается хранить в базе, требуется, чтобы их предком был конкретный базовый тип, определяющий все основные операции взаимодействия с сервером БД. Поэтому для создания своего типа необходимо: · унаследовать свойства любого имеющегося типа, наиболее подходящего по своему поведению и состоянию к типу, который требуется получить; · расширить недостающие операции и атрибуты; · переопределить, по необходимости, уже имеющиеся Язык СУБД и запросы Общепризнанны две группы вариантов языков запросов: · Первая группа объединяет языки, унаследованные от SQL и представляющие собой разновидность языка OQL (ObjectQueryLanguage), стандартизованного ODMG. Объектно-реляционные СУБД используют различные варианты ограниченных объектных расширений SQL. · Вторая группа языков запросов базируется на языках группы XML QL, (или XQL). Они могут применяться в качестве языков запросов в объектных и объектно-реляционных БД. Три главных характеристики: · целостность, · масштабируемость · отказоустойчивость. Для создания ООСУБД были реализованы несколько проектов, например: ORION, O2 и Cache. ООСУБД полностью поддерживают объектно-ориентированные языки программирования. Разработчики, применяющие C++ или Smalltalk, могут использовать такие преимущества объектной технологии, как наследование, инкапсуляция и полиморфизм Язык SQL (Structured Query Language). Интерактивный и встроенный SQL. Составные части SQL. Типы данных SQL. Основные типы команд SQL SQL – это язык структурированных запросов (Structured Query Language) к реляционным БД. Используя SQL-запросы, можно выбирать из таблиц БД только необходимые записи. При этом мы можем получить доступ не просто к одной таблице, а к сложной выборке из связанных между собой таблиц или наборов данных. SQL как стандартный способ управления БД реализован во многих СУБД, включая Microsoft Access и SQL Server. Существуют две формы языка SQL: интерактивный SQL и встроенный SQL. Интерактивный SQL используется для задания SQL-запросов пользователем и получения результата в интерактивном режиме. Встроенный SQL состоит из команд SQL, встроенных внутрь программ, обычно написанных на каком-то другом языке (Паскаль, С, C++и др.). Составные части SQL. И интерактивный, и встроенный SQL подразделяются на следующие составные части: DDL, или язык определения данных; DML, или язык манипулирования данными; DQL, или язык запросов; DCL, или язык управления данными; Команды администрирования данных; Команды управления транзакциями. Типыданных SQL CHARACTER (CHAR) представляет собой символьные строки фиксированной длины. INTEGER — представление целых чисел в диапазоне от –231 до +231. SMALLINT — используется для представления целых чисел в диапазоне от –215 до +215. DECIMAL (точность [, масштаб ])— десятичное число с фиксированной точкой, точность определяет количество значащих цифр в числе. Масштаб указывает максимальное число цифр справа от точки. FLOAT [(точность)] — число с плавающей точкой и указанной миним. точностью. REAL — число такое же, как при типе FLOAT, за исключением определения точности по умолчанию (в зависимости от конкретной реализации SQL). DOUBLE PRECISION — число аналогично REAL, но точность в два раза выше точности REAL. Дата и время -Тип данных, предназначенный для представления даты и времени, также является нестандартным, хотя и чрезвычайно полезным. Неопределенные или пропущенные данные (NULL) Для обозначения отсутствующих, пропущенных или неизвестных значений атрибута в SQL используется ключевое слово NULL. Типы команд SQL 1. Команды языка определения данных (data definition language — DDL) позволяют создавать новые таблицы в БД, добавлять индексы и т.д.: CREATE TABLE - создать таблицу, ALTER TABLE - модифицировать таблицу, DROP TABLE - удалить таблицу, CREATE INDEX - создать индекс, ALTER INDEX - модифицировать индекс, DROP INDEX - удалить индекс. 2. Команды языка обработки данных (data manipulation language — DML) используются для добавления, корректировки и удаления строк в таблицах и включают команды: INSERT - вставить данные в таблицу, UPDATE - обновить данные, DELETE - удалить данные. 3. Команда языка запросов данных (dataquerylanguage — DQL) (единственная команда) используется для получения данных из таблиц и определения формы представления этих данных: SELECT - выполнить запрос из таблиц базы. 4. Команды языка управления данными (data control language— DCL) определяют доступ отдельных пользователей и групп пользователей к объектам БД посредством полномочий, предоставляемых и отменяемых командами: GRANT - предоставить привилегии, REVOKE - отменить привилегии. 5. Команды языка обработки транзакций (transaction processing language — TPL) обеспечивают обновление всех строк, используемых в операторе DML, и включают следующие команды: BEGIN TRANSACTION - начать транзакцию, COMIT TRANSACTION - завершить транзакцию, SAVE TRANSACTION - создать точку сохранения внутри транзакции. 6. Команды языка управления курсором (cursor control language — CCL) выполняют операции с отдельными строками одной или нескольких таблиц и включают команды: DECLARE CURSOR, FETCH INTO и UPDATE WHERE CURRENT.
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 2878; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.015 с.) |