Уроки по Sql

Для чего нужен sql язык – SQL — Википедия

Что такое sql server и зачем он нужен?

О СУБД

Система управления базами данных (в сети Интернет часто можно встретить сокращение «СУБД») является специальным программным обеспечением, которое позволяет создавать и изменять различные базы данных. В веб-разработке используются клиент-серверные СУБД. Базы вместе с клиент-серверной СУБД располагаются непосредственно на сервере, куда поступают все клиентские запросы. Между клиентом и сервером происходит минимальная передача данных, а все вычисления производятся на сервере СУБД. Именно по такому принципу устроены распространенные в сети Интернет СУБД.

Рассмотрим две широко распространенные СУБД. Системы приведенные ниже довольно популярны и находятся в разных «весовых» категориях. Остальные системы по большему счету аналогичны им.

СУБД MySQL


Одна из самых доступных СУБД это MySQL. Некоторые пользователи ошибочно считают, что MySQL это язык программирования. На самом деле данная СУБД имеет очень широкий набор поддерживаемых языков программирования: Delphi, C, C++, Perl, Lisp, Python и другие. Данная СУБД является оптимальным вариантом малых веб-ресурсов. Некоторые популярные системы управления содержимым (CMS) работают только при наличии на сервере установленной СУБД MySQL. Данная система отличается своей простотой и доступность. Она имеет двойную лицензию разрешающую использовать данную систему совершенно бесплатно. Но если пользователь желает использовать MySQL в разработке программного обеспечения с закрытым кодом — придется приобретать MySQL по платной лицензии.

MySQL имеет широкое распространение. Сегодня практически каждый сервер имеет поддержку баз данных MySQL, но практически все серверы имеют ограничения на размер баз данных MySQL. Сделано это специально, так как начиная с MySQL версии 3.22, размер таблицы может достигать 4 гигабайт. Со следующих версий размер таблицы ограничивается максимально допустимым размером файла для операционной системы. Тем не менее, обычно на среднем виде хостинга под базы данных MySQL выделяется около 200 мегабайт памяти и можно создавать от 1 до 5 БД.

СУБД Microsoft SQL Server

Существует еще одна популярная СУБД — это Microsoft SQL Server. Данная система предоставляется по платной лицензии и больше ориентирована на крупные веб-ресурсы. Данная СУБД использует в качестве основного языка Transact-SQL который создан по образу структурированного языка запросов (SQL). Система предназначена для работы на системах семейства Windows и в частности на Windows Server. Последние версии данной СУБД поддерживают 64-битную архитектуру, экономично используют доступную память, и имеют улучшенные протоколы шифрования, что может гарантировать безопасность передаваемых запросов и самих баз данных. Также эта СУБД имеет поддержку большого количества различных технологий компании Microsoft, что позволяет использовать ее и для создания различных приложений.

У СУБД от Microsoft также имеется бесплатная версия данной системы. Она носит приставку «Expres» и по сути является аналогом MySQL. Исключения составляют дополнительные функции, которые делают работу с СУБД от Microsoft более комфортной.

Выводы

Каждая из представленных СУБД имеет своё назначение. Практически каждый современный хостинг имеет поддержку MySQL. Microsoft SQL встречается реже и в основном на специальных серверах с установленной системой Windows Server. Они значительно расширяют функционал сайта, а также позволяют сделать работу с сайтом более комфортной, как для владельца, так и для посетителей.

Многим начинающим веб-мастерам интересно, что такое СУБД и что представляет собой так называемый sql server. Сначала нужно узнать что такое базы данных и зачем они нужны. В базах данных храниться определенная информация о веб-ресурсе, его пользователях, составных элементах и так далее. Вся информация в БД имеет четкую структуру, а для вызова определенной информации применяют так называемый язык структурированных запросов. Базы данных применяются для внедрения в сайт определенных дополнительных возможностей, которые помогают сделать сайт интерактивным. Обработка базы данных происходит через специальный sql server, который является специальной программой (или набором программ и утилит) с помощью которой создают и изменяют БД. Существует несколько различных по функциональности СУБД. Некоторые из них бесплатные и предназначены для небольших веб-ресурсов. Другие применяются для управления крупными базами данных, которые, созданы для больших корпоративных сайтов или интернет-магазинов.

hostalavista.ru

sql - Зачем использовать базу данных SQL?

Если все, что вам нужно сделать, - это где-то хранить некоторые данные приложения, то RDBMS общего назначения или даже SQLite может быть переполнена. Сериализация ваших объектов и запись их в файл может быть проще в некоторых случаях. Преимущество SQLite заключается в том, что если у вас много такого рода информации, все они содержатся в одном файле. Недостатком является то, что читать его сложнее. Например, если вы упорядочиваете данные в YAML, вы можете прочитать файл с помощью любого текстового редактора или оболочки.

Лично я бы использовал некоторые 'compiled db query' байт-код, что будут собраны один раз внутри клиентского приложения и базы данных.

Вот как работают некоторые API баз данных. Проверьте статические SQL и подготовленные операторы.

Есть ли какая-то причина для меня не написать его сам и использовать SQL вместо базы данных?

Если вам нужно много возможностей, в какой-то момент будет проще использовать существующий RDMBS, чтобы затем писать свою собственную базу данных с нуля. Если вам не нужны многие функции, более простое решение может быть более мудрым.

Весь смысл продуктов баз данных - избегать написания уровня базы данных для каждой новой программы. Да, современный RDMBS не всегда может быть идеально подходящим для каждого проекта. Это потому, что они были разработаны как очень общие, поэтому на практике вы всегда будете получать дополнительные функции, которые вам не нужны. Это не значит, что лучше иметь собственное решение. Перчатка не всегда должна быть идеально подходящей.

UPDATE:

Но зачем использовать язык SQL для взаимодействие с такой базой данных?

Хороший вопрос.

Ответ на это можно найти в оригинальной статье, описывающей реляционную модель Реляционная модель данных для крупных общих банков данных, EF Codd, опубликованный IBM в 1970 году. В этом документе описываются проблемы с существующими технологиями баз данных того времени и объясняется, почему реляционная модель превосходит.

Причиной использования реляционной модели и, следовательно, логического языка запросов, такого как SQL, является независимость данных.

Независимость данных определяется в документе как:

"... независимость прикладных программ и терминальных действий от роста типов данных и изменений в представлениях данных."

До реляционной модели доминирующая технология для баз данных называлась сетевой моделью. В этой модели программист должен был знать структуру данных на диске и вручную перемещаться по дереву или графику. Реляционная модель позволяет написать запрос к концептуальной или логической схеме, которая не зависит от физического представления данных на диске. Это разделение логической схемы от физической схемы - вот почему мы используем реляционную модель. Более подробно об этой проблеме, здесь - некоторые слайды из класса базы данных. В реляционной модели мы используем логические логические языки запросов, такие как SQL, для извлечения данных. Codd paper более подробно описывает преимущества реляционной модели. Дайте ему прочитать.

SQL - это язык запросов, который легко вводить в компьютер в отличие от языков запросов, обычно используемых в исследовательских документах. В исследовательских документах обычно используется алгебра отношения или реляционное исчисление для записи запросов.

Таким образом, мы используем SQL, потому что мы используем реляционную модель для наших баз данных.

Если вы понимаете реляционную модель, нетрудно понять, почему SQL такой, какой она есть. Таким образом, в основном, вам нужно более подробно изучить модель отношений и базы данных, чтобы действительно понять, почему мы используем SQL. В противном случае это может быть немного загадкой.

ОБНОВЛЕНИЕ 2:

SQL - это интерфейс между человеком и базы данных. Вопрос в том, почему мы должны использовать его для взаимодействие приложений и баз данных? я все еще прошу примеров людей запись/отладка SQL.

Поскольку база данных является реляционной базой данных, она понимает только языки реляционных запросов. Внутри он использует реляционную алгебру, такую ​​как язык, для указания запросов, которые затем превращаются в план запросов. Таким образом, мы пишем наш запрос в форме, которую мы можем понять (SQL), DB берет наш SQL-запрос и превращает его в свой внутренний язык запросов. Затем он берет запрос и пытается найти "план запроса" для выполнения запроса. Затем он выполняет план запроса и возвращает результат.

В какой-то момент мы должны закодировать наш запрос в формате, который понимает база данных. База данных знает, как преобразовать SQL во внутреннее представление, поэтому в какой-то момент цепи всегда есть SQL. Этого нельзя избежать.

Когда вы используете ORM, просто добавляете слой поверх SQL. SQL все еще существует, он просто скрыт. Если у вас есть уровень более высокого уровня для перевода вашего запроса в SQL, тогда вам не нужно писать SQL напрямую, что полезно в некоторых случаях. Иногда у нас нет такого уровня, который способен выполнять те запросы, которые нам нужны, поэтому мы должны использовать SQL.

qaru.site

Введение в SQL « Язык запросов SQL

Что такое SQL (Structured Query Language)?

SQL (Structured Query Language) — язык структурированных запросов.

SQL (Structured Query Language

, язык структурированных запросов) — это специальный язык, используемый для определения данных, доступа к данным и их обработки. Язык SQL относится к непроцедурным (nonprocedural) языкам — он лишь описывает нужные компоненты (например, таблицы) и желаемые результаты, не указывая, как именно эти результаты должны быть получены. Каждая реализация SQL является надстройкой над процессором базы данных (database engine), который интерпретирует операторы SQL и определяет порядок обращения к структурам БД для корректного и эффективного формирования желаемого результата.

Стандарт SQL определяется ANSI — American National Standarts  Institute (Американским Национальным Институтом Стандартов) и в настоящее время принят ISO — International Standarts  Organization (Международной Организацией по Стандартизации).

SQL — непроцедурный язык: серверу базы данных сообщается, что нужно сделать и каким образом. Для обработки запроса сервер базы данных транслирует команды SQL во внутренние процедуры. Благодаря тому, что SQL

скрывает детали обработки данных, его легко использовать.

Что можно делать с помощью SQL?

  • SQL позволяет создавать таблицы данных.
  • SQL позволяет хранить данные.
  • SQL позволяет получать данные.
  • SQL позволяет изменять данные.
  • SQL позволяет изменять структуру таблиц.
  • SQL позволяет объединять данные.
  • SQL позволяет выполнять вычисления.
  • SQL позволяет обеспечивать защиту данных.

Команды SQL

Команды SQL разделяются на следующие группы:

  • Команды языка определения данных — DDL (Data Definition Language). Эти SQL команды можно использовать для создания, изменения и удаления различных объектов базы данных.
  • Команды языка управления данными — DCL (Data Control Language). С помощью этих SQL команд можно управлять доступом пользователей к базе данных и использовать конкретные данные (таблицы, представления и т.д.).
  • Команды языка управления транзакциями — TCL (Тгаnsасtiоn Соntrol Language). Эти
    SQL
    команды позволяют определить исход транзакции.
  • Команды языка манипулирования данными — DML (Data Manipulation Language). Эти SQL команды позволяют пользователю перемещать данные в базу данных и из нее.

Основные ключевые слова, используемые в статье«Введение в SQL»:

sql, введение в sql, язык структурированных запросов, непроцедурный язык, structured query language, что такое sql

sql-language.ru

Что такое SQL | Техника и Программы

SQL – это структурированный язык запросов. SQL не существует без баз данных — на нем нельзя писать программы, и в этом смысле он не является языком программирования, таким как РНР, но когда приходится иметь дело с конкретной СУБД, то без знания SQL уже не обойтись. На нем можно писать простенькие запросы, а можно выполнять большие транзакции, состоящие из нескольких сложных запросов. SQL-запрос — это своего рода команда к базе данных. Такая команда может затребовать вернуть информацию, попадающую под конкретные критерии, или дать указание удалить какие-либо записи и т.п. SQL-команда — это простая строка, например:

SELECT * FROM Staff WHERE department

SQL-запросы обычно близки к простому выражению на английском языке. Приведенная выше команда может быть переведена на русский язык следующим образом

ВЫБРАТЬ ВСЕ из Staff ГДЕ clwjiertme"

Вполне понятная команда, жаль только записывается она исключительно на английском. В результате выполнения такого запроса СУБД вернет все записи из таблицы Staff, в которых поле depart* •Mit_id равно трем. В нашем примере дан­ный запрос фактически выбирает только программистов из всей базы сотрудников.

Если вы раньше не работали с СУБД, то у вас может возникнуть резонный во­прос: где и как можно выполнить данный запрос? Существует три способа выпол­нения SQL-запросов.

1. Интерактивная среда взаимодействия с СУБД. Для большинства серверов СУБД существуют программы-клиенты (встроенные или поставляемые третьими лицами), в рабочей среде которых можно писать SQL-запросы, вы­полнять их и получать результат. Обычно такие средства используются ад­министраторами баз данных и к РНР-программированию прямого отноше­ния не имеют. Примером клиентской программы для работы с MySQL может послужить программа MySQL Administrator (http: /www.mysgl.coin/ product-s/administratoT/) или очень популярная РНР-система phpMyAdmin (http: / /www. phpmyadi’ln. r»et/itumm jiage/index. php). Для начала работы будет достаточно уже установленного дистрибутива, который имеет консоль­ный интерфейс. В Linux необходимо из командной строки набрать команду mysql, чтобы открылось окно с приглашением для ввода SQL-запросов, а в Windows для запуска того же интерфейса нужно запустить файл mysql. ехе из каталога bin.

2. Статические SQL-запросы. Обычно такие запросы прописываются внутри хранимых процедур в самих базах данных или жестко прошиваются в самих приложениях. Статический SQL-запрос определен заранее и меняется только в том случае, если вручную переписывается код программы или хранимой процедуры. Из РНР такой SQL-запрос выполняется с помощью специальных функций, которые будут рассмотрены далее.

3. Динамические SQL-запросы. К данному виду относятся такие запросы, i рые при написании приложения не могут быть определены полностью. i» пример, при написании программы для получения списка сотруднике» mt разным подразделениям предприятия программисту не известно, ci"> о в компании будет подразделений и какие сотрудники будут в них входи i„. Конечно, эти данные можно прописать в программе жестко, но при перво же изменении в структуре компании программу можно будет выбросить ил, потребуется переписать. Динамические запросы позволяют создавать поо-граммы, гибкие к изменениям данных. В РНР такие запросы выполняются практически теми же функциями, что и статические, только в них г’»’щег’^в’> ет возможность передавать некоторые параметры.

В качестве резюме к описанным выше трем пунктам можно сказать, что SQL-запросы выполняются из специальных администраторских программ либо различ­ными способами из РНР-скриптов.

Так как СУБД решает множество задач, SQL тоже вынужден быть многоф циональным языком. Существует несколько типов операций, которые можно <• \ ществлять с помощью SQL.

1. Определение структуры базы данных. К этому типу относятся запросы, с помощью которых создаются и модифицируются таблицы и индексы. Обыч­но это команды CRE; "Е ТА’ LE, ALI’R ТА’ LE, ‘ ”•’.ТЕ INDEX И др.

2. Манипуляция данными. К этому типу относятся запросы на вставку (дв1*и> ление), удаление или изменение данных в таблицах. Это три основные ко­манды: INSERT. DELETE И UPDATE.

3. Выборка данных Сюда входит только одна команда SELECT. Она не вносит изменения в сами данные, но позволяет получать их из базы. Несмотря на то что для выборки данных используется только одна команда, она имеет очень большие возможности и используется в приложениях очень часто.

4. Управление сервером СУБД. К этому типу в основном относятся запросы для управления пользователями и их правами доступа (например, команда GRANT).

Хорошее знание SQL очень облегчает труд программиста при работе с БД. При­ложения могут быть небольшими, но иметь большой функционал только за счет того, что много задач на себя возьмет SQL.

Как и в любой другой сфере IT, в SQL существуют стандарты — это ANSI SQL. Аббревиатура ANSI расшифровывается как Amrican National Standards Institute (Американский национальный институт стандартов). Однако не в последнюю оче­редь из-за различия в функционале самих СУБД реализации SQL для различных

СУБД все же отличаются друг от друга. На данный момент практически каждая СУБД имеет свой диалект, который обычно не сильно отличается от общего стан­дарта, но имеет свои особенности. Например, с Oracle и PostgreSQL совместим язык PL/SQL, а для работы с MS SQL Server используется T-SQL.

Для последующей работы с базами данных мы рекомендуем сразу изучать тот стандарт, с которым вы планируете работать в дальнейшем. Для большинства Web-разработчиков на данный момент с головой хватает функциональных возможно­стей СУБД MySQL (к тому же она может использоваться бесплатно), поэтому в дан­ной книге все примеры с MySQL будут приводиться, соответственно, на диалекте этой СУБД. Документация по языку запросов для MySQL можно найти на сайте www.mysql.com.

nauchebe.net

SQL для чайников: что нужно знать начинающим?

На сегодняшний день курсы SQL "для чайников" становятся все более популярными. Это можно очень просто объяснить, ведь в современном мире все чаще можно встретить так называемые "динамичные" веб-сервисы. Они отличаются достаточно гибкой оболочкой и основываются на базах данных. Все начинающие программисты, которые решили посвятить себя созданию сайтов, прежде всего записываются на курсы SQL "для чайников".

Зачем изучать данный язык?

Прежде всего SQL учат с целью дальнейшего создания самых разнообразных приложений для одного из самых популярных на сегодняшний день движков блогов - WordPress. После прохождения нескольких простых уроков вы уже сможете создавать запросы любой сложности, что только подтверждает простоту этого языка.

Что такое SQL?

Structured Query Language, или язык структурированных запросов, был создан с одной-единственной целью: определять тип данных, предоставлять к ним доступ и обрабатывать их за достаточно короткие промежутки времени. Если вы знаете SQL-значение, тогда вам будет понятно, что этот сервер относят к так называемым "непроцедурным" языкам. То есть в его возможности входит всего лишь описание каких-либо компонентов или результатов, которые вы хотите увидеть в будущем на сайте. Но при этом программист не указывает на то, какие точно результаты собирается получить. Каждый новый запрос в этом языке является как бы дополнительной "надстройкой". Именно в таком порядке, в каком они введены в базе данных, запросы и будут исполняться.

Какие процедуры можно совершать с помощью этого языка?

Несмотря на свою простоту, база данных SQL позволяет создать достаточно много самых разнообразных запросов. Так что же вы сможете делать, если выучите этот важный в программировании язык?

  • создавать самые разнообразные таблицы;
  • получать, хранить и изменять полученные данные;
  • изменять структуры таблиц на свое усмотрение;
  • объединять полученную информацию в единые блоки;
  • вычислять полученные данные;
  • обеспечивать полную защиту информации.

Какие команды являются самыми популярными в данном языке?

Если вы решили посетить курсы SQL "для чайников", тогда вы получите подробную информацию о командах, которые используются в создании запросов с его помощью. Самыми распространенными на сегодняшний день являются такие:

  1. DDL - является командой, которая определяет данные. Она используется для того, чтобы создавать, изменять и удалять самые разнообразные объекты в базе.
  2. DCL - является командой, которая управляет данными. Ее используют для предоставления доступа разным пользователям к информации в базе, а также чтобы использовать таблицы или представления.
  3. TCL - команда, которая управляет разнообразного рода транзакциями. Ее главной целью является определение хода транзакции.
  4. DML - манипулирует полученными данными. В ее задачу входит позволение пользователю перемещать различную информацию из базы данных или вносить туда ее.

Типы привилегий, которые существуют в этом сервере

Под привилегиями подразумеваются те действия, которые может выполнить тот или иной пользователь в соответствии со своим статусом. Самой минимальной, безусловно, является обычный вход в систему. Конечно же, со временем привилегии могут меняться. Старые будут удаляться, а новые добавляться. На сегодняшний день, все те, кто проходит курсы SQL Server "для чайников", знают, что существует несколько типов разрешенных действий:

  1. Объектный тип - пользователю разрешается выполнять какую-либо команду только по отношению к определенному объекту, который находится в базе данных. При этом для разных объектов привилегии отличаются. Они также привязываются не только к тому или иному пользователю, но и к таблицам. Если кто-либо, пользуясь своими возможностями, создал таблицу, то он считается ее владельцем. Поэтому в его праве назначать новые привилегии для других пользователей, связанные с информацией в ней.
  2. Системный тип - это так называемые авторские права на данные. Пользователи, которые получили такие привилегии, могут создавать различные объекты в базе.

История создания SQL

Этот язык был создан исследовательской лабораторией IBM в 1970 году. В то время название его было несколько иным (SEQUEL), но через несколько лет использования его поменяли, немного сократив. Несмотря на это, даже сегодня многие известные мировые специалисты в области программирования все еще произносят название по старинке. Создана была SQL с одной-единственной целью - изобрести язык, который был бы настолько простым, что его могли бы без особых проблем выучить даже простые пользователи Интернета. Интересен тот факт, что на то время SQL был не единственным подобным языком. В Калифорнии еще одна группа специалистов разработала похожий Ingres, но он так и не стал широко распространенным. До 1980 года существовало несколько вариаций SQL, которые лишь в некоторой мере отличались друг от друга. Чтобы предотвратить замешательства, в 1983-м был создан стандартный его вариант, который популярен и сегодня. Курсы SQL "для чайников" позволяют узнать намного больше о сервисе и полностью изучить его за несколько недель.

autogear.ru

общая характеристика, интерфейс с традиционными языками программирования

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Петрозаводский государственный университет

Кольский филиал

Кафедра информационных технологий

Доклад на тему:

«Язык SQL – общая характеристика, интерфейс с традиционными языками программирования»

студента 5 курса (гр. 2)

очного отделения

факультета ИПМ

специальности 230102 - Автоматизированные системы обработки информации и управления

Самсонова Антона Владимировича

Апатиты

2010

Оглавление

1       Характеристики

2       Вопросы практического программирования

3       Вопросы совместимости

4       Реализации SQL

5       Типы команд SQL

6       Преимущества и недостатки языка SQL

6.1    Преимущества

6.2    Недостатки

Список использованных источников


1.   Характеристики

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL.

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R. Вопреки сложившемуся мнению, первой стала именно СУБД Oracle.

Рост количества данных, необходимость их хранения и обработки привели к тому, что возникла потребность в создании стандартного языка баз данных, который мог бы функционировать в многочисленных компьютерных системах различных видов. Действительно, с его помощью пользователи могут манипулировать данными независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции или универсальной ЭВМ.

SQL (англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный информационно-логический язык, появившийся в результате разработки реляционной модели данных, применяемый для создания, модификации и управления данными в реляционных базах данных.

Изначально, SQL был основным способом работы пользователя с базой данных и представлял собой небольшую совокупность команд (операторов) допускающих создание таблиц, добавление в таблицы новых записей, извлечение записей из таблиц (в соответствии с заданным условием), удаление записей и изменение структур таблиц. В связи с усложнением язык SQL стал более прикладным языком программирования, а пользователи получили возможность использовать визуальные построители запросов.

SQL принципиально отличается от традиционных алгоритмических языков программирования прежде всего тем, что он относится к непроцедурным языкам. На языке типа Кобол или Си можно записать шаг за шагом все инструкции, необходимые для исполнения программы. Язык SQL позволяет задать только то, “что нужно делать”, а само исполнение отдельных операций (“как делать”) возлагается непосредственно на СУБД. Такой подход в значительной мере определяется самой философией реляционных баз данных. СУБД в данном случае рассматривается как “черный ящик”, и что происходит внутри него, пользователя не должно касаться. Его должно интересовать только внесение в базу данных необходимых изменений и получение правильного ответа на запрос.

Другой особенностью SQL является так называемая трехзначная логика. В большинстве языков булево выражение может принимать только два значения: истина и ложь. Язык SQL позволяет записывать в базу данных значение NULL (пустое значение). NULL – это специальный код, который помещается в столбец таблицы, если по какой-нибудь причине в нем отсутствуют данные. Когда значение NULL участвует в операциях сравнения, булев результат будет ни истина и ни ложь, а неизвестно.

Все языки манипулирования данными, созданные для многих СУБД до появления реляционных баз данных, были ориентированы на операции с данными, представленными в виде логических записей файлов. Разумеется, это требовало от пользователя детального знания организации хранения данных и серьезных усилий для указания того, какие данные необходимы, где они размещаются и как их получить.

Благодаря работающим с файловыми серверами СУБД, множество пользователей получают доступ к одним и тем же базам данных. Упрощается разработка различных автоматизированных систем управления организациями. Однако при таком подходе вся обработка запросов из программ или с терминалов пользовательских ЭВМ на них и выполняется, поэтому для реализации даже простого запроса необходимо считывать с файлового сервера или записывать на него целые файлы, а это ведет к конфликтным ситуациям и перегрузке сети. Для исключения указанных недостатков была предложена технология клиент-сервер, но при этом понадобился единый язык общения с сервером – выбор пал на SQL.

Рассматриваемый язык SQL ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц-отношений. Важнейшая особенность его структур – ориентация на конечный результат обработки данных, а не на процедуру этой обработки. Язык SQL сам определяет, где находятся данные, индексы и даже какие наиболее эффективные последовательности операций следует использовать для получения результата, а потому указывать эти детали в запросе к базе данных не требуется.

SQL в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. Стандарт на язык SQL был выпущен Американским национальным институтом стандартов (ANSI) в 1986 г., а в 1987 г. Международная организация стандартов (ISO) приняла его в качестве международного. Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 году нового расширенного стандарта (ANSI SQL-92 или просто SQL2). Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже.


2.   Вопросы практического программирования

Как правило, любой поставщик СУБД предоставляет вместе со своей системой внешнюю утилиту, которая позволяет вводить операторы SQL в режиме командной строки и выдает на консоль результаты их выполнения (так, как это сделано на этой страничке, предоставляющей интерактивный доступ к БД publications). Недостатки такого режима работы очевидны: необходимо знать SQL, необходимо помнить схему БД, отсутствует возможность удобного просмотра результатов выполнения запросов. Поэтому, подобные утилиты стали инструментами администраторов баз данных, а для создания пользовательских приложений используются универсальные и специализированные языки программирования. Приложения, написанные таким образом, позволяют пользователю сосредоточиться на решении собственных задач, а не на структурах данных.

Почти все способы организации взаимодействия пользователя с базой данных основаны на модели "клиент-сервер". Т.е. предполагается, что каждое приложение обработки данных разбито, как минимум, на две части:

клиента, который отвечает за организацию пользовательского интерфейса

сервер, который собственно хранит данные, обрабатывает запросы и посылает их результаты клиенту для отображения

При этом предполагается, что каждая часть приложения функционирует на отдельном компьютере, т.е. к выделенному серверу БД с помощью локальной сети подключены персональные компьютеры пользователей (клиенты). Это наиболее популярная сегодня схема организации вычислительной среды.

Язык SQL позволяет только манипулировать данными, но в нем отсутствуют средства создания экранного интерфейса, что необходимо для пользовательских приложений. Для создания этого интерфейса служат универсальные языки третьего поколения (C, C++, Pascal) или проблемно-ориентированные языки четвертого поколения (xBase, Informix 4Gl, Progress, Jam,...). Эти языки содержат необходимые операторы ввода / вывода на экран, а также операторы структурного программирования (цикла, ветвтеления и т.д.). Также эти языки допускают определение структур, соответствующих записям таблиц обрабатываемой базы данных. В исходный текст программы включаются операторы языка SQL, которые во время исполнения передаются серверу БД, который собственно и производит манипулирование данными. Отношения, полученные в результате выполнения сервером SQL-запросов, возвращаются прикладной программе, которая заполняет строками этих отношений заранее определенные структуры. Дальнейшая работа клиентской программы (отображение, корректировка записей) ведется с этими структурами.

Каждая СУБД помимо интерактивной SQL-утилиты обязательно имеет библиотеку доступа и набор драйверов для различных операционных систем.

Библиотека доступа - это, как правило, объектный файл, исходный код которого создан на универсальном языке типа C. Эта библиотека содержит набор функций, позволяющих пользовательскому приложению соединятся с базой данных, передавать запросы серверу и получать ответные данные. Типичный набор функций такой библиотеки (имена функций зависят от используемой библиотеки):

Библиотечные вызовы преобразуются драйвером базы данных в сетевые вызовы и передаются сетевым программным обеспечением на сервер.

На сервере происходит обратный процесс преобразования: сетевые пакеты -> функции библиотеки -> SQL-запросы, запросы обрабатываются, их результаты передаются клиенту.

mirznanii.com

Основные операции языка SQL

История языка SQL

Для управления данными в реляционных СУБД используется язык высокого уровня SQL (Structured Query Language - структурированный язык запросов). SQL был разработан в конце 70-х компанией IBM. В 1989 году международная организация по стандартизации ISO официально приняла международной стандарт языка. В 1992 году ISO обновила этот стандарт. И на сегодняшний день все реляционные СУБД, существующие в мире, поддерживают стандарт SQL 92 года. Нужно заметить, что в разных СУБД имеются некоторые отличия в синтаксисе языка, поэтому можно говорить о «диалектах» SQL для разных СУБД. Но общие принципы и базовые операторы во всех диалектах совпадают.

Основные структуры языка SQL

Основной структурой представления и хранения данных в реляционных СУБД является двумерная таблица. Обычно таблица соответствует отдельной сущности предметной области. Строка таблицы называется записью. Столбец таблицы называется полем.

Таблица должна обладать следующими свойствами:

  1. Иметь уникальное для рассматриваемой базы данных имя. Таблица с таким же именем может существовать при условии, что она относится к другой базе данных, которая находится под управлением этой же СУБД.
  2. Иметь конечное и постоянное число полей. Иногда бывают ситуации, когда нужно добавить новые поля или удалить имеющиеся. Но в этом случае речь идет уже об изменении структуры таблицы по причине изменений в предметной области. Это происходит не часто.
  3. Иметь конечное число записей. Возможно, что это число равно нулю.
  4. Поля таблицы имеют уникальные в рамках данной таблицы имена. В другой таблице могут присутствовать поля с такими же именами.
  5. Все значения, которые находятся в одном поле, должны иметь одинаковый тип данных. Например, для поля с именем «ДатаРождения» логично выбрать тип данных «Date». Данный столбец должен содержать исключительно даты и ничего другого.
  6. Записи не имеют какой-либо специальной упорядоченности и идентифицируются только своим содержимым.
  7. Значение поля таблицы может быть пустым. В этом случае считается, что оно содержит специальное значение NULL.

На данные, хранящиеся в таблицах допустимо накладывать следующие ограничения:

  • Требование уникальности значений определенного поля или группы полей для каждой записи.

    Пример 1

    Например, если в таблице есть поле, содержащее идентификационный номер налогоплательщика (ИНН), то его следует объявлять уникальным. В этом случае СУБД сама будет сообщать об ошибке при попытке ввести два одинаковых ИНН. Если же в таблице есть два поля «СерияПаспорта» и «НомерПаспорта», то следует объявить уникальными их сочетание. Потому что существует много одинаковых серий и одинаковых номеров паспортов, но сочетание серии и номер всегда уникально.

  • Требование запретить для какого-либо поля иметь значение NULL.

Операции над таблицами

В реляционной модели принято четыре основных операции над таблицами:

  • Проекция;
  • Ограничение;
  • Объединение;
  • Подмножество декартова произведения.

Все другие операции получаются путем комбинации четырех базовых.

Определение 1

Проекция таблицы – построение из данной таблицы новой таблицы путем выбора лишь некоторых полей.

Пример 2

Исходная таблица:

Проекция исходной таблицы:

Определение 2

Ограничение – построение из данной таблицы новой таблицы путем выбора записей удовлетворяющих определенному условию.

Пример 3

Выберем из исходной таблицы примера 1 всех, кто имеет должность «лаборант». В результате получится новая таблица:

Определение 3

Объединение – построение из двух таблиц с одинаковой структурой одной таблицы, включающей все записи обеих исходных.

Пример 4

Пусть имеется две таблицы с одинаковой структурой

В результате объединения получится таблица 3:

Определение 4

Подмножество декартова произведения – построение новой таблицы из двух исходных таблиц путем слияния определенных строк исходных таблиц

Пример 5

Пусть имеется две таблицы:

Тогда подмножеством декартова произведения будет таблица, в которой к строкам таблицы 1 добавлен оклад из таблицы 2 в соответствии с должностью:

spravochnick.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *