Структура языка SQL

Автор: Пользователь скрыл имя, 17 Декабря 2010 в 12:17, курсовая работа

Описание работы

Цель данной курсовой работы заключается в том, что нужно попытаться подробно рассмотреть структуру языка SQL.

Достижение таковой цели возможно при выполнении следующих задач:

- изучить нужные материалы данной темы,

- понять и расписать структуру языка SQL,

- рассмотреть операторы языка SQL,

- сделать соответствующие выводы.

Работа содержит 1 файл

структура языка SQL.doc

— 210.00 Кб (Скачать)
      1. Протокол  ODBC и компания Microsoft

     Компания  Microsoft рассматривает доступ к базам данных как важную часть своей операционной системы Windows. Стандартом этой компании по обеспечению доступа к базам данных является ODBC (Open Database Connectivity — взаимодействие с открытыми базами данных) — программный интерфейс, основанный на SQL. Протокол ODBC поддерживается наиболее распространенными приложениями Windows (электронными таблицами, текстовыми процессорами, базами данных и т.п.), разработанными как самой компанией Microsoft, так и другими ведущими поставщиками. Поддержка ODBC обеспечивается всеми ведущими реляционными базами данных. Кроме того, ODBC опирается на стандарты, одобренные консорциумом поставщиков SQL Access Group, что делает ODBC как стандартом де-факто компании Microsoft, так и стандартом, независимым от конкретных СУБД. 

      1. Реляционная основа

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

      1. Высокоуровневая структура, напоминающая английский язык

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

      1. Интерактивные запросы

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

      1. Программный доступ к базе данных

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

      1. Различные представления данных

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

      1. Полноценный язык для работы с  базами данных

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

      1. Динамическое  определение данных

     С помощью SQL можно динамически изменять и расширять структуру базы данных даже в то время, когда пользователи обращаются к ее содержимому. Это большое преимущество перед языками статического определения данных, которые запрещают доступ к базе данных во время изменения ее структуры. Таким образом, SQL обеспечивает максимальную гибкость, так как дает базе данных возможность адаптироваться к изменяющимся требованиям, не прерывая работу приложения, выполняющегося в реальном масштабе времени. 

      1. Архитектура клиент/сервер

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

  1. Структуры языка SQL
 
    1. Идентификаторы INFORMIX

     Идентификатор  (имя объекта)  -  это  слово, состоящее из букв, цифр, и знаков подчеркивания (_), начинающееся с буквы  или знака (_). В INFORMIX-4GL не различаются  маленькие и большие  буквы. Поэтому i_Un1023Tt и I_UN1023TT - одно и тоже имя.

     Имя базы данных не длиннее 10.

     Имена прочих объектов SQL - таблиц, столбцов, view (псевдотаблиц), синонимов - не длиннее 18. 

    1. Группы  операторы языка SQL

        SQL содержит 4 группы операторов:

      - Операторы описания данных: CREATE, DROP, ALTER и др.

      - Операторы манипуляции данными: INSERT, DELETE, SELECT, UPDATE и др.

      - Операторы задания прав доступа  в базе данных: GRANT / REVOKE ,  LOCK / UNLOCK ,  SET LOCK MODE

      - Операторы защиты, восстановления  данных и прочие операторы.

     Их  обзором мы сейчас и займемся, по порядку. 

    1. Операторы описания данных

     Операторы описания данных предназначены  для  описания  (создания),  изменения  описания  и уничтожения объектов базы данных.

     В SQL различаются  следующие виды объектов:

     - база данных (database);

     - таблица (table);

     - столбец (column);

     - индекс (index);

     - снимок (view);

     - синоним (synonym).

     Каждый  объект  имеет  собственное  имя - идентификатор. Каждый объект имеет владельца - т.е. того  пользователя,  который  его создал. Имя объекта можно уточнять с помощью имени его владельца (owner-name) в такой форме: moshkow.table1

     Ниже  приводятся примеры использования  всех операторов описания данных.

     Создание  базы данных.

     CREATE DATABASE zawod

     В любой момент времени вы можете иметь  доступ к объектами только  одной  - ТЕКУЩЕЙ (CURRENT) - базы данных. Оператор DATABASE делает новую базу текущей, закрывая при этом доступ к  объектам предыдущей  текущей базы. Оператор CLOSE DATABASE просто закрывает текущую базу данных.

     DATABASE zawod  . . .                # текущей является база zawod

     DATABASE stanciq  . . .                # текущей является база stanciq

     CLOSE DATABASE . . .                # текущей базы нет 

     Создаются таблицы kadry и ceh, содержащие столбцы  разных типов.

     CREATE TABLE  kadry    (

      nomerceh  INT,

      tabnom    SERIAL ,

      fio       CHAR(20) UNIQUE,

      zarplata  MONEY(16,2),

      datarovd  DATE,

      pribytie  DATETIME year TO minute )

     CREATE TABLE ceh ( nomerceh int, nameceh char(20) )

     В уже существующей таблице мы можем  поменять тип столбца, добавить новый, уничтожить старый.

     ALTER TABLE kadry ADD  (dolvnostx  CHAR(20)  BEFORE  zarplata),

     DROP(pribytie),  ADD CONSTRAINT UNIQUE(tabnom, fio) CONSTRAINT

     tabnomfio

     ALTER TABLE items MODIFY (manu_code char(4))

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

     View  - "псевдо" таблица, базируется на существующих таблицах.

     CREATE VIEW poor AS SELECT tabnom, fio, datarovd FROM kadry

        WHERE zarplata < 120

     # создано  view  - "псевдотаблица"  из трех столбцов  содержащая

     # строки из таблицы kadry, в которых  zarplata меньше 120 рублей. 

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

     Индекс - дополнительная структура к столбцам таблицы, нужен для ускорения поиска значений в столбце.

     CREATE  UNIQUE INDEX indkdtb ON kadry (tabnom)

     #  создан  индекс  для  столбца  tabnom из таблицы kadry. Индекс

     #  уникальный,  значит  в столбце  не могут появиться одинаковые

     #  значения.

     Мы  можем  физически упорядочить таблицу в соответствии с индексом. В кластеризованной таблице  SELECT работает быстрее.

     ALTER INDEX indkdtb TO  CLUSTER

     Имена  столбцов в разных таблицах могут  совпадать. Если в каком либо операторе SQL упоминаются два столбца с одинаковыми названиями, то их нужно уточнять именами таблиц, их содержащих.  Перед именем любого объекта можно (а иногда и необходимо) указать имя  его владельца (owner-name) - входное имя пользователя, ко торый создал (CREATE) этот объект.

     kadry.nomerceh     #    столбец nomerceh из таблицы kadry

     ceh.nomerceh          #    столбец nomerceh из таблицы ceh

     iwanow.table1.c1   #    столбец c1 из таблицы table1,  владельцем которой является iwanow

     moshkow.table1.c1 #    столбец c1 из другой (!) таблицы - таблицы table1, владельцем которой  является moshkow

     Синоним для имени таблицы используется для сокращения записи.

     CREATE SYNONYM t1 FOR petrow.sostoqnie_postow

     Теперь  повсюду можно  (хотя  и  не  обязательно)  вместо  имени

     petrow.sostoqnie_postow использовать имя t1. 

     База данных может иметь системный журнал транзакций (logfile).

     START  DATABASE zawod  WITH LOG IN "/udd/moshkow/logfile/zawod"

     Если  нет журнала  транзакций  для  всей базы данных, то для отдельных  таблиц в базе с той же целью  можно создать audit trail.

Информация о работе Структура языка SQL